亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在iOS上的Objective-C中,使用合成的吸氣劑時,“ self.foo”和“ foo”之間的

在iOS上的Objective-C中,使用合成的吸氣劑時,“ self.foo”和“ foo”之間的

烙印99 2019-11-19 14:45:38
我已經搜索了許多關于ObjC訪問器和綜合訪問器的問題,但是都沒有用。這個問題更像是一個“幫助我解決問題”的問題;我不希望有一個答案,但我希望找專家來論證。在Cocoa Touch類中,我將編寫如下代碼(其中soundEffects是合成的NSArray屬性):id foo = [self.soundEffects objectAtIndex:1];一位同事讓我解釋一下,為什么上述內容比這行更好:id foo = [soundEffects objectAtIndex:1];好吧,從功能上來說,沒有什么不同。我對前者的論據如下:self.soundEffects 告訴處理該代碼的所有其他編碼器這是一個iVar,而不是局部范圍的變量。如果需要,可以將自定義邏輯放入soundEffectsgetter訪問器中。在沒有具體原因的情況下,在Obj-C工作了一年后,感覺就像做正確的事情。他接受參數#1和#2是有效的,但也給出了對點:這不只是代碼膨脹嗎?是否應該允許類直接與自己的iVar對話而不必自己調用方法(getter)?有沒有人?
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

自我聲音效果

通過setter / getter設置/獲取實例變量,因此,如果我們想在其值更改時執行一些自定義操作,則該邏輯可以進入其getter / setter。

同樣根據ios 6,ivar對應于


@property(nonatomic)NSArray * propertyName;

將會


_propertyName

所以我想你不能使用


id foo = [soundEffects objectAtIndex:1];

不再。不過不確定。相反,您應該使用

id foo = soundEffects [1];


查看完整回答
反對 回復 2019-11-19
  • 3 回答
  • 0 關注
  • 533 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號