iOS修改readonly的屬性值

一般通過KVC修改readonly屬性值熊昌。如果修改NSUInteger類型的值,則傳入一個(gè)NSNumber的對(duì)象,Objective-C會(huì)處理好一切漾根。

#import <Foundation/Foundation.h>

@interface Student : NSObject
@property(nonatomic,copy,readonly)NSString *nickName;
@property(nonatomic,copy,readonly)NSString *studentNumber;
@property(nonatomic,assign,readonly)NSUInteger age;
-(instancetype)initWithStudentNumber:(NSString *)studentNumber nickName:(NSString *)nickName age:(NSUInteger)age;
-(void)study;
-(void)goSchool;
@end

#import "Student.h"

@implementation Student
-(instancetype)initWithStudentNumber:(NSString *)studentNumber nickName:(NSString *)nickName age:(NSUInteger)age
{
    self = [super init];
    if (self) {
        _studentNumber = studentNumber;
        _nickName = nickName;
        _age = age;
    }
    return self;
}
-(void)study
{
    NSLog(@"%@",NSStringFromSelector(__func__));
}
-(void)goSchool
{
    NSLog(@"%@",NSStringFromSelector(__func__));
}
+(BOOL)accessInstanceVariablesDirectly
{
    return YES;
}
    Student *stu = [[Student alloc] initWithStudentNumber:@"011" nickName:@"郭德綱" age:12];
    [stu study];
    [stu goSchool];

    NSLog(@"改變前readonly的值:%@",stu.nickName);
//    stu.nickName = @"孟非";
    [stu setValue:@"孟非" forKey:NSStringFromSelector(@selector(nickName))];
    [stu setValue:@(21) forKey:NSStringFromSelector(@selector(age))];
    NSLog(@"改變后readonly的值:%@,%ld",stu.nickName,stu.age);

為了避免KVC修改屬性值厚宰,須將定義屬性所在的類重寫方法+(BOOL)accessInstanceVariablesDirectly,使其返回NO腌巾。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遂填,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子澈蝙,更是在濱河造成了極大的恐慌吓坚,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灯荧,死亡現(xiàn)場離奇詭異礁击,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)逗载,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門哆窿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人厉斟,你說我怎么就攤上這事挚躯。” “怎么了擦秽?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵码荔,是天一觀的道長。 經(jīng)常有香客問我号涯,道長目胡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任链快,我火速辦了婚禮誉己,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘域蜗。我一直安慰自己巨双,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布霉祸。 她就那樣靜靜地躺著筑累,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丝蹭。 梳的紋絲不亂的頭發(fā)上慢宗,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音奔穿,去河邊找鬼镜沽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛贱田,可吹牛的內(nèi)容都是我干的缅茉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼男摧,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼蔬墩!你這毒婦竟也來了译打?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤拇颅,失蹤者是張志新(化名)和其女友劉穎奏司,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體樟插,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡结澄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了岸夯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片麻献。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖猜扮,靈堂內(nèi)的尸體忽然破棺而出勉吻,到底是詐尸還是另有隱情,我是刑警寧澤旅赢,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布齿桃,位于F島的核電站,受9級(jí)特大地震影響煮盼,放射性物質(zhì)發(fā)生泄漏短纵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一僵控、第九天 我趴在偏房一處隱蔽的房頂上張望香到。 院中可真熱鬧,春花似錦报破、人聲如沸悠就。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梗脾。三九已至,卻和暖如春盹靴,著一層夾襖步出監(jiān)牢的瞬間炸茧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工稿静, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梭冠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓自赔,卻偏偏與公主長得像妈嘹,于是被迫代替她去往敵國和親柳琢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绍妨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • KVC(Key-value coding)鍵值編碼润脸,單看這個(gè)名字可能不太好理解。其實(shí)翻譯一下就很簡單了他去,就是指iO...
    我的夢(mèng)工廠閱讀 891評(píng)論 1 8
  • KVC(Key-valuecoding)鍵值編碼毙驯,單看這個(gè)名字可能不太好理解。其實(shí)翻譯一下就很簡單了灾测,就是指iOS...
    榕樹頭閱讀 715評(píng)論 0 2
  • 歡迎到我的 個(gè)人博客 http://liumh.com 瀏覽此文 本文討論的是爆价,對(duì)于類中聲明為 readonly ...
    CaryaLiu閱讀 15,785評(píng)論 8 36
  • 什么是KVC? KVC(Key-value coding)鍵值編碼媳搪,單看這個(gè)名字可能不太好理解铭段。其實(shí)是指iOS的開...
    祀夢(mèng)_閱讀 937評(píng)論 0 7
  • 在享受啤酒的醇厚和芳香時(shí),你有沒有思考過一個(gè)問題: 啤酒是怎么釀成的秦爆? 接下來序愚, 就由我?guī)ьI(lǐng)大家快速瀏覽一下 啤酒...
    從此開始喝精釀閱讀 551評(píng)論 0 1