0

ARCの前にiOS3開発の開始を最初に読んだとき、いくつかのViewControllerクラスで次のようなパターンが見られたことを覚えています。

.h
@property (nonatomic, retain) NSArray *myArray;

.m
in viewDidLoad:
NSArray *tempArray = [[NSArray alloc] init];
self.myArray = tempArray;
[tempArray release];

プロパティセッター/ゲッターを使用した場合にプロパティがメモリを処理できるように、これを行ったことを読んだことを覚えています。だから今ARCで、あなたはまだその種の変数の作成に従うのだろうかと思います。たとえば、iOS 6で新しいプロジェクトを開始すると、AppDelegateで開始されます。

.h
@property (strong, nonatomic) ViewController *viewController;
.m
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

この場合、一時変数は作成されません。私はなぜ、そして私が最初のパターンの代わりにそのパターンに従うべきかどうか疑問に思いました。ありがとう!

4

2 に答える 2

0

これらは同じパターンですが、ARCがリリースを適切に処理するようになりました。コードの2番目のブロックは、ARCでは問題ありません。それがARCをとても素晴らしいものにしている理由です。

于 2012-12-07T17:07:38.213 に答える
0

はい、そうすべきです。ARCは、不要な保持と解放を自動的に最適化します。

于 2012-12-07T17:10:59.917 に答える