目标C:对象的初始化

时间:2013-07-23 19:08:29

标签: objective-c

如果我想创建一个UIImage,那么下面两行代码会有什么区别:

UIImage *img = [UIImage imageWithCGImage:cgImage];

UIImage *img = [[UIImage alloc] initWithCGImage:cgImage];

这只是“同一个目的,不同手段”的情况吗?

1 个答案:

答案 0 :(得分:5)

imageWithCGImage:返回自动释放的实例,而initWithCGImage:返回您必须自行释放的图像。通常,您可以依靠类方法返回自动释放的对象,而任何实例init方法都返回您必须释放的对象。

如果您使用ARC代码,它们基本上会做同样的事情,但请参阅此相关问题以获取更多信息:With ARC, what's better: alloc or autorelease initializers?