Objective-C 2.0 では、値を NSNumber プロパティに割り当てています。
myObject.myProperty = 5;
コンパイラは私に教えてくれます:
「int」から「NSNumber *」への暗黙的な変換は、ARC では許可されていません
それで、私がこれを行うとどうなるかを考えました:
myObject.myProperty = @5;
デバッガーでプロパティを調べると、次のように表示されます。
_myProperty = (__NSCFNumber *) (int)5
これにより、コンパイラは満足し、悪いことは何も起こらないように見えますが、何が起こっているのかよくわかりません。
この省略形は正確に何をしますか? また、安全ですか? NSCF番号とは何ですか? ドキュメントには表示されません。