Objective-c – Objective C – init和构造函数之间的区别?
发布时间:2020-12-16 03:15:17 所属栏目:百科 来源:网络整理
导读:我试图找到Objective C中的init和构造函数之间的区别.我不是C开发人员,但是我需要将一些Objective C代码转换为 Java,实际上我无法理解两者之间的区别. 解决方法 在Objective-C中,对象的生命方式分为两部分:分配和初始化. 您首先为您的对象分配内存,其中填满
我试图找到Objective C中的init和构造函数之间的区别.我不是C开发人员,但是我需要将一些Objective C代码转换为
Java,实际上我无法理解两者之间的区别.
解决方法
在Objective-C中,对象的生命方式分为两部分:分配和初始化.
您首先为您的对象分配内存,其中填满零(除了您不需要关心的某些Objective-C内部内容之外): myUninitializedObjectPointer = [MyClass alloc]; 下一阶段是初始化.这是通过以惯例从init开始的方法完成的.你应该坚持这个惯例有各种各样的原因(特别是使用ARC时),但从语言的角度来看,没有必要. myObjectPointer = [myUnitializedObjectPointer init]; 或一行: myObjectPointer = [[MyClass alloc] init]; 在其他语言中,这些init方法被称为构造函数,但是在Objective-C中,没有强制在分配对象时调用“构造函数”.你有责任调用相应的init方法.在C,C#和Java这样的语言中,分配和初始化是非常紧密的耦合,您不能在不初始化的情况下分配对象. 所以简而言之:init方法可以被认为是构造函数,但只能通过命名约定而不是语言执行.对Objective-C来说,他们只是一般的方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |