objective-c - 在oc里面点号和中括号发送消息的区别
PHP中文网
PHP中文网 2017-04-21 10:57:14
0
3
635

本来我以为在oc里面发送一个消息只能用中括号的

后来一个typo让我发现其实直接像c++那样用点号也是可以发送消息,只不过会多一个警告,内容看不太明白

很奇怪他说得并不是deprecated什么的,而是说这么用有副作用,不只看有谁能帮我解析一下这里说的副作用是什么意思

相关代码

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

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

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

认证0级讲师

全員に返信(3)
小葫芦

この警告行は次のようになります。これを実行すると副作用があるという意味ではありませんが、値を取得するために getter が使用されることを意味し、resignFirstResponder の送信は推奨されません。ゲッターを使用します。
.nu​​mber は @synthesize のプロパティの getter メソッドと setter メソッドに等しいです

いいねを押す +0
阿神

直訳すると、属性の戻り値は使用されません。
言い換えれば:
すべきです a =b.c;
直接使用することはお勧めしません
紀元前;
クラスメソッドとは異なり、次のようなメソッドを使用できます:
o.method();

いいねを押す +0
黄舟

メッセージの送信には通常、resignFirstResponder メソッドが使用されることがわかりました。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート