0

ARC を使用するプロジェクトと ARC を使用しないプロジェクトの 2 つのシナリオがあります。

1) ARC を使用しないプロジェクトでは、以下を使用できます。

 MyViewController* viewController = [[MyViewController alloc] init];
 [self.navigationController pushViewController:viewController animated:YES];
 [viewController release];

2)ARCを使用するプロジェクトで上記をどのように達成できますか。

      a)where can I allocate memory?
      b)where can I release viewcontroller after pushing?
      c)is there any standard for it?
4

4 に答える 4

0

releaseARCでは、autoreleaseまたはを使用しませんretain。ARC がそれを行います。通常どおりに割り当てるだけ[[Class alloc] init];ですが、上記のメッセージをオブジェクトに送信する必要はありません。

于 2012-10-12T08:12:43.080 に答える
0

ARC を使用する場合、viewController を解放する必要はありません。コンパイラが and を追加releaseretainます。

したがって、ARCでは次のようになります。

MyViewController* viewController = [[MyViewController alloc] init];
[self.navigationController pushViewController:viewController animated:YES];

retainreleaseおよびを使用するとautorelease、コンパイラ エラーが発生します。


@propertyARC を使用する場合は、 を正しく使用する必要があることに注意してください。保持したいプロパティstrongと保持したいプロパティに使用します。iOS 4.3 のサポートが必要な場合は、使用できませんが、使用する必要があります。weakassignweakunsafe_unretained

于 2012-10-12T08:12:49.087 に答える