自作iPhoneアプリ一覧(無料)
住所検索
MySpotNavi
SignPhotoR
HairManager
WebIDMemo

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[objective-c技術情報メモ]delegateはassign

delegateはassign

なんのこっちゃ?と思うかもしれないが、
 要はdelegateはretainではなく、assign属性で宣言するべき
と言う事。
iPhone/iPod touch/iPadアプリ開発関連の話である。


プログラムコードで表すと
通常プロパティを生成する際はヘッダファイルに下記のようなコードを書きます。
 @property (nonatomic, retain) NSString *name;
 @property (nonatomic, assign) NSUInteger index;

これを
 @property (nonatomic, assign) NSString *name;
 @property (nonatomic, retain) NSUInteger index;
こんな風に書いちゃったりするとコンパイル時に怒られます。(確か怒られるはず・・)
そのため、比較的容易に気付く事ができます。


しかし、delegateに関しては
 @property (nonatomic, assign) id delegate; こう書いても、
 @property (nonatomic, retain) id delegate: こう書いても、
どちらで書いても怒られません。

怒られないからいーや、とか思っちゃってもいいかもしれませんが、
実はこれダメなんです。

難しい話になるし、私自身も説明できないので割愛しちゃいますが、(w
簡単に言うとメモリリークの原因になります。


気を付けよう。オレw
(今新しく作っているアプリで同様の事をしており、
 appleに申請後に気付いたので急いでリジェクト、再申請。
 一日分遅くなりました。。。)

コメントの投稿

管理者にだけ表示を許可する

プロフィール

きまぐれユリアン

Author:きまぐれユリアン


こんにちは。ユリアンです。
10年程ソフトウェア開発会社に勤め、プログラマやSEと言われるような事、その他、簡単な経理など色々な事をやっていました。
2011年12月末に退職。今はフリーでやっています。


ここではそんな仕事ネタは置いといて、日々の出来事や時事ネタ、それらに対して自分が思う事を思うがままに書いていく予定です。

どうぞよろしくお願いします。

最新記事
カテゴリ
月別アーカイブ
最新コメント
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。