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

类方法可以根据需要返回保留或自动释放的对象,并且您的代码完美地返回自动释放的对象。

但是,您可能应该以不同的方式命名您的方法。由于您的方法以 开头init,这意味着它正在初始化一个alloced 对象(因此应该是实例方法而不是类方法)。photoViewControllerWithImageView:如果它要返回一个自动释放的对象,我建议命名该方法。

另外,我可能会把它写成,return [toreturn autorelease];但我想这是我的风格偏好。

于 2011-02-08T15:47:23.530 回答
2

我认为在访问财产之前检查是否toreturn是一个好习惯。nilimageview

于 2011-02-08T15:54:07.407 回答