我遇到了在实例上调用的initWith方法和在类上调用的工厂方法之间的差异.
首先,为什么他们称之为“工厂”方法,并且对于我所称的“InitWith”方法是否存在合适的术语?
其次,功能区别是什么?它只是内存管理的含义(工厂方法返回一个自动释放的对象)?
例如,[Nsstring stringWithString:(Nsstring *)aString]和[[Nsstring alloc] initWithString:(Nsstring *)aString]之间的真正区别是什么?
解决方法 Cocoa的 object ownership policy中描述了这些方法之间的区别.你拥有从-initWithString返回的对象:所以必须释放它,但你不拥有stringWithString返回的对象,因此不需要释放它(此外,如果你我想获得它的所有权,你必须保留它).调用工厂方法,因为它们为您返回一个已经创建的对象,通常使用您提供的用于配置对象的参数,以方便程序员.
总结以上是内存溢出为你收集整理的objective-c – InitWith方法与工厂方法全部内容,希望文章能够帮你解决objective-c – InitWith方法与工厂方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)