3

私は iTunes U で iPhone 開発ビデオをフォローしてきましたが、これまでのところ非常に優れています。十分に理解できたと思います。

問題は、彼らが提供する例では、いくつかの Foundation クラス ([NSString string] など) で使用するようなカスタム クラス メソッドを作成しないため、独自のクラス メソッドを作成する方法がわかりません。クラスの自動解放されたインスタンスを返します。

インスタンスメソッドを使用して保持オブジェクトを作成する方法は知っていますが、クラスメソッドを使用したいので、クラスメソッドを使用したいと思います。この実装が自動解放されたオブジェクトを返すのに最も適しているかどうかはわかりません。

+ (PhotoViewController*)initWithImageView:(UIImageView*)imageView
{
    PhotoViewController *toreturn = [[PhotoViewController alloc] init];
    toreturn.imageview = imageView;
    [toreturn autorelease];
    return toreturn;
}

ご協力いただきありがとうございます。

4

2 に答える 2

6

クラスメソッドは、必要に応じて保持オブジェクトまたは自動解放オブジェクトを返すことができ、コードは完全に適切に自動解放オブジェクトを返します。

ただし、おそらくメソッドに別の名前を付ける必要があります。メソッドが で始まるため、それは ed オブジェクトinitを初期化していることを意味しallocます (したがって、クラス メソッドではなくインスタンス メソッドである必要があります)。photoViewControllerWithImageView:自動解放されたオブジェクトを返す場合は、メソッドに名前を付けることをお勧めします。

また、おそらく次のように書きますreturn [toreturn autorelease];が、それは私のスタイルの好みだと思います.

于 2011-02-08T15:47:23.530 に答える
2

プロパティにアクセスする前に、toreturnであるかどうかを確認することをお勧めします。nilimageview

于 2011-02-08T15:54:07.407 に答える