1

私はObjectiveCで新しいです。-init()私はそれがオブジェクトであることを理解し、オブジェクトを返します。instance methodたとえば、オブジェクトmyObj=[myObj init];を返しますmyObj.

ただし、self =[super init];通常はsuper refer to parentクラスの場合、たとえばNSObject、これはclass, not instance

それで、Is -init() instance method or class method for super init?

ありがとう

4

3 に答える 3

3

initインスタンスメソッドです。あなたがそれを呼んだという事実はそれをsuper変えません。

はオブジェクトのクラスを表すのでsuperはなく、オブジェクトがクラス階層内の親クラスのインスタンスとして表示されることに注意してください。

そして、あなたは決して電話しませんmyObj=[myObj init];—あなたは電話しますmyObj = [[MyObj alloc] init]. myObj(変数) とMyObj(この変数がインスタンスであるクラス)の大文字と小文字の違いに注意してください。

于 2012-04-09T11:09:56.980 に答える
1

Super は、現在のオブジェクトの親クラスのメソッドを参照しています。を呼び出すと、現在のオブジェクト ( )super initのメソッドが呼び出されますが、スーパー クラスの実装が使用されます。いいえ-静的メソッドではありません (これは init メソッドの前にあるため表示されます)。静的でなくても呼び出すことができます。静的メソッドは、オブジェクト ( ) ではなく、クラス ( ) で呼び出されます。initselfinit+super whatMethodYouWantFromSuperclassself[NSObject yourStaticMethod]

于 2012-04-09T11:11:25.207 に答える