如果我想创建一个UIImage,那么下面两行代码会有什么区别:
UIImage *img = [UIImage imageWithCGImage:cgImage];
UIImage *img = [[UIImage alloc] initWithCGImage:cgImage];
这只是“同一个目的,不同手段”的情况吗?
答案 0 :(得分:5)
imageWithCGImage:
返回自动释放的实例,而initWithCGImage:
返回您必须自行释放的图像。通常,您可以依靠类方法返回自动释放的对象,而任何实例init
方法都返回您必须释放的对象。
如果您使用ARC代码,它们基本上会做同样的事情,但请参阅此相关问题以获取更多信息:With ARC, what's better: alloc or autorelease initializers?