私は最近 ruby を学んでおり、Objective C で遅延ゲッターをより簡単に記述できるようになる ||= 機能が大好きです。
現在、次のようなゲッターを作成しています。
- (NSArray *)myArray {
if (!_myArray) {
_myArray = [NSArray array];
}
return _myArray
}
||= で何かが欠けていない限り、Ruby で前のコードを次のように記述できます。
- (NSArray *)myArray {
return _myArray ||= [NSArray array];
}
それは明らかにはるかにきれいです。Objective-C 言語/ランタイムでこれを可能にするものはありますか?
また、以下はゲッターの 1 行の 3 項です。上記の実証済みの真の方法 (最初のスニペット) と同じくらい効果的かどうかはわかりません。何か問題があるかどうか誰かに教えてもらえますか:
- (NSArray *)myArray {
return _myArray = _myArray ? _myArray : [NSArray array];
}