2012年8月20日月曜日
ZenCodingショートカットまとめ
Command+Eで展開
HTML5 → html:5
HTML4.01Transisional → html:4t
HTML4.01Strict → html:4s
CSS → link:css
JavaScript → script:src
2012年4月28日土曜日
[Objective-C]配列にオブジェクトを格納する場合のメモリ管理
★iPhoneプログラミングのTips★
配列や辞書(dictionary)周りのメモリ管理について。
メモリリークしないために、オブジェクト生成にメモリを確保(alloc)したら、
deallocでリリース(release)するのが基本だが、
配列・辞書にオブジェクトを格納して管理しようとする場合に、
allocやらretainやらreleaseは必要になるのか?という話。
stackoverflowでわかりやすい説明を発見。
http://stackoverflow.com/questions/885839/with-an-nsarray-of-object-references-do-i-explicitly-release-all-objects-in-the
結論から言うと、配列の中に格納したオブジェクトに関しては、
★allocなりretainなりでリテインカウントを上げる必要がある。
★配列をreleaseしたときに、中のオブジェクトも自動でreleaseされる。
例えばこんな具合。
配列や辞書(dictionary)周りのメモリ管理について。
メモリリークしないために、オブジェクト生成にメモリを確保(alloc)したら、
deallocでリリース(release)するのが基本だが、
配列・辞書にオブジェクトを格納して管理しようとする場合に、
allocやらretainやらreleaseは必要になるのか?という話。
stackoverflowでわかりやすい説明を発見。
http://stackoverflow.com/questions/885839/with-an-nsarray-of-object-references-do-i-explicitly-release-all-objects-in-the
結論から言うと、配列の中に格納したオブジェクトに関しては、
★allocなりretainなりでリテインカウントを上げる必要がある。
★配列をreleaseしたときに、中のオブジェクトも自動でreleaseされる。
例えばこんな具合。
//配列をグローバル変数にする為にリテインカウントを1上げる。mojilabelArray = [[NSMutableArray alloc] init];//配列に格納するオブジェクトに関してもリテインカウントを1あげる。CCLabelTTF *ttllabel = [[CCLabelTTF labelWithString:moji fontName:@"Arial" fontSize:50] retain];[mojilabelArray addObject:ttllabel];//dealloc[mojilabelArray release];//ttllabelはmojilabelArrayがreleaseされたとき、同時にreleaseされる。
登録:
投稿 (Atom)