2012年12月30日日曜日

iOSのフレームワーク

作ってみて、わかったことは、
・UIImageなどがなくて、エラーを吐いてても、フレームワークを作れること
・ただ、その状態だと、組み込んでも動かないこと

ってことは、そんな意味ないってことじゃん!

間違ってるかな。。。多分あってるはず

2012年12月25日火曜日

iosのプロパティ

いつもあんまり気にしないのですが、ちょっと調べてみました


strong

__strong修飾子に対応するプロパティ属性です。strong属性を用いたプロパティは参照先オブジェクトのオーナーとなります。

weak

__weak修飾子に対応するプロパティ属性です。__weak修飾子を持った変数と同様、weak属性のプロパティも、参照先のオブジェクトが破棄されたら自動的にnilが代入されます。weak属性を用いたプロパティはオーナーシップ権を持ちません。
weak属性は、delegateやOutletの変数に最適です。
なお、iOS 4では__weak修飾子が使えないため、プロパティのweak属性も使えません。この場合は、後述のunsafe_unretainedを使いましょう。

copy

__strong修飾子に対応しますが、実際にはコピーオブジェクトが代入されます。copy属性を用いたプロパティは参照先オブジェクトのオーナーとなります。

unsafe_unretained

__unsafe_unretaind修飾子に対応するプロパティ属性です。iOS 4では、weak属性が使えないため、オーナーシップ権を持たないプロパティを作成したい場合、こちらを利用する必要があります。

assign

主にスカラー変数(intやBOOLなど)のプロパティ属性として利用されます。
オブジェクトに対して使用することも可能ですが、オーナーシップ権を持たないプロパティを作成したい場合、weak(iOS 5以上)もしくはunsafe_unretained(iOS 4を含む)を利用すべきでしょう。

retain

retain属性も利用することは可能です(strong属性と同じ働きをします)。しかしながら、ARC対応のコードでは、strong属性を使った方が明白でよいでしょう。
ふむふむ