1

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

UIImage *img = [UIImage imageWithCGImage:cgImage];

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

只是“目的相同,手段不同”吗?

4

1 回答 1

5

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

如果您使用 ARC 代码,它们基本上会做同样的事情,但请参阅此相关问题以获取更多信息:使用 ARC,什么更好:alloc 或 autorelease 初始化程序?

于 2013-07-23T19:13:47.460 回答