MacDev 板


LINE

※ 引述《leondemon (狗狗)》之铭言: : 用property/synthesize一个物件变数A之後 (nonatomic, retain) : 为什麽在method当中要对A进行操作时 : 在set的语法必须要用 self.A = something : 而不能直接用 A = something 其实可以,因为A还是你物件里的一个变数,但是这边牵涉到一个问题 A是什麽? 如果是简单的资料型别,例如int float,那没问题,可以直接设定 但是如果是物件,那就爆了,因为A是一个指标 直接写 A = something 会改掉 A 指向的物件,所以原来指到的东西 就会变成无主孤魂,而且没有release掉,会有leak。新的物件也因为 没有retain,有可能会在别的地方被release掉,然後你的程式就bye了 : 可是get的时候可以直接用A (用self.A也可以) : Why? 看得懂上面的话,为什麽这边可以用就很明显了。 所以基本上,请照规矩来,取资料用getter,设资料用setter,不要乱搞 -- Luna quieres ser madre y no encuentras querer que te haga mujer --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 112.104.95.143
1F:推 leondemon:所以getter的时候 无论用不用dot operator都不会出错罗? 12/22 23:26
2F:→ leondemon:setter部分我懂了 谢谢B大解说 12/22 23:27
3F:→ Blueshiva:你直接取用A的话,会直接取到A的值/物件,但是getter有 12/22 23:32
4F:→ Blueshiva:可能不是直接传回A的值,所以A/self.A有可能会有不同的 12/22 23:33
5F:→ Blueshiva:结果,也就是说,还是有可能出错(logical error) 12/22 23:33
6F:→ Blueshiva:不过话说回来,你是在synthesize的状况下用,getter应该 12/22 23:40
7F:→ Blueshiva:就是直接传回A的值/物件,所以在这种状况下是不会出错 12/22 23:41
8F:推 leondemon:我也是这样想 :) 不过对於你说可能会出错的状况很有兴趣 12/22 23:47
9F:→ uranusjr:所以我讨厌 dot syntax.... 12/22 23:48
10F:推 leondemon:顺便想问一下下面两个语意是否相同: 12/22 23:52
11F:→ leondemon:self.A = nil; 12/22 23:53
12F:→ leondemon:[A release]; //A为物件变数 12/22 23:53
13F:→ leondemon:在dealloc的时候 要release物件变数 两者是否都可使用? 12/22 23:54
14F:推 leondemon:当然self.A = nil写成[self setA: nil]会比较好 XD 12/22 23:57
15F:→ kenzou:如果self.A是pointer并已赋值,再把A指到nil会memory leak 12/23 00:20
16F:→ uranusjr:在这个状况而言是一样的, 不过建议是统一用 release, 以 12/23 00:24
17F:→ uranusjr:保持语法的一致性 12/23 00:24
18F:→ uranusjr:但如果 A 里面还有其他的 object pointer, 这样就会出事 12/23 00:25
19F:→ uranusjr:我回文好了 12/23 00:25







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP