objective-c - objective c如何new一个对象?
PHP中文网
PHP中文网 2017-04-21 10:57:52
0
3
753

这里我是指不使用框架,纯粹的objective-c语法是如何新建一个对象的?

我在网上查了许多资料,都是用NSObject的alloc后再init的方法创建一个对象
难道objective c这个语言要新建对象还必须依赖某个框架或者某个父类的存在?这不合逻辑啊

PHP中文网
PHP中文网

认证0级讲师

全員に返信(3)
大家讲道理

class_createInstanceを使用する
官方文档里内容:
クラスのインスタンスを作成し、デフォルトの malloc メモリ ゾーンでクラスにメモリを割り当てます。

id class_createInstance(クラス cls, size_t extraBytes)
パラメータ
cls
インスタンスを割り当てたいクラス。
余分なバイト
割り当てる追加バイト数を示す整数。追加のバイトは、クラス定義で定義されたものを超える追加のインスタンス変数を格納するために使用できます。
戻り値
クラス cls.

のインスタンス

宣言されました
ランタイム.h

参考资料
http://developer.apple.com/library/ma...

いいねを押す +0
巴扎黑

obj-c にはオブジェクトを作成する 2 つの方法があります

  • 初期化では、最初に alloc メソッドを呼び出してメモリを適用し、次に init メソッドを呼び出してオブジェクトを作成します。
  • 構築メソッド。静的構築メソッドを直接呼び出してオブジェクトを作成します。このメソッドは実際には初期化のための単なるラッパーです。
いいねを押す +0
Peter_Zhu

私は現在 iPhone 開発を学んでいます。その本には、Objective-C がクラスのインスタンス化のステップを分離していると書かれています。 alloc はメモリ空間を割り当てるために使用され、その後、init または他のメソッド (次のような) で初期化されます:
リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート