objective-c - 在oc裡面點號和中括號發送訊息的區別
PHP中文网
PHP中文网 2017-04-21 10:57:14
0
3
575

本來我以為在oc裏麵發送一個消息隻能用中括號的

後來一個typo讓我發現其實直接像c 那樣用點號也是可以發送消息,隻不過會多一個警告,內容看不太明白

很奇怪他說得並不是deprecated什麼的,而是說這麼用有副作用,不隻看有誰能幫我解析一下這裏說的副作用是什麼意思

相關代碼

// 申明
@property (weak, nonatomic) IBOutlet UITextField *textfield; 

// 运行代码
self.textfield.resignFirstResponder; //写成这样会出警告,但是能运行

[self.textfield resignFirstResponder]; // 按这样的标准写法就没事
PHP中文网
PHP中文网

认证0级讲师

全部回覆(3)
小葫芦

這行警告是這樣的,不是說你這樣做有副作用,而是說getter是用來取值,而發送 resignFirstResponder 是一個side effect,不建議用getter。
.號在 @synthesize 的屬性上等於getter和setter方法

阿神

字面翻譯是:屬性的回傳值沒有被使用。
也就是說:應該
a =b.c;
而不建議直接用
b.c;
跟類別方法不一樣,方法你可以這麼用:
o.method();

黄舟

學習了,resignFirstResponder方法一般習慣都採用訊息發送的方式。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板