- Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
497 :デフォルトの名無しさん[sage]:2016/10/13(木) 01:30:12.49 ID:TfTkEqcE - >>489
大丈夫。 myclass* obj[3]; //ポインタ型の配列 省略されてるがstrong ARC有効なのでmainのスコープを抜けた時に解放される。 @autoreleasepoolは要らない。
|
- Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
498 :デフォルトの名無しさん[sage]:2016/10/13(木) 01:33:33.88 ID:TfTkEqcE - ARCだからreleaseは呼べないので、解放されるかチェックするなら
@implementation myclass - (void)dealloc { NSLog(@“%s”, __func__); } @end
|
- Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
502 :デフォルトの名無しさん[sage]:2016/10/13(木) 02:11:12.99 ID:TfTkEqcE - >>495
これで動作確認してみたよ。(ARC) -deallocも呼ばれる。 int main() { myclass* obj[3]; for(int i=0; i<3; ++i) { obj[i] = [ [myclass alloc]init ]; [obj[i]set : i*10]; [obj[i]print]; } return 0; } >>500 MRCなら[super dealloc]; を末尾で呼びます。 >>501 手動でretain, releaseなんだけど、init系はretain済みを返すとか、 コンビニエンスコンストラクタはautorelease済みを返すとか、 ViewにaddSubviewしたらretainされるとか、いろいろややこしいかもよw あと、Xcodeのテンプレではmain()に@autoreleasepoolがあるけど、 ARCなら上記のとおり解放されるし、どのみちmainを抜けたらアプリ終了で解放されるんだよね。
|
- Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
504 :デフォルトの名無しさん[sage]:2016/10/13(木) 02:32:47.05 ID:TfTkEqcE - >>503
GCCはARC未サポートみたいだね。 MRCの基本自体は簡単なんだけどね。
|