-2

メソッドの呼び出し方法とその背後にある構文について少し混乱しています。誰かが私のために2行のコードを分析できますか? ランダムな質問がたくさんあります。

NSString *testString;  
testString = [[NSString alloc] init]; 

それで、ここで何が起こっているのですか?作成されている testString という新しいポインタがあります...これは何を指していますか?

それから最後の行で設定されていますが、何にかなり混乱しています。は:

[[NSString alloc] init]

住所を返す?メソッド「alloc」が NSString で呼び出され、その出力で init が呼び出されていますか? alloc と init は何をしますか?

ありがとう。

4

2 に答える 2

1

alloc/initは、Objective-C で新しいオブジェクトを作成する標準的な方法です。メソッドallocは、(および他のほとんどの Objective-C オブジェクト) がサブクラスであるNSObjectクラスのクラス メソッドです。NSStringそれが行うことは、 stringtestStringにメモリを割り当て、それを返します。このinitメソッドは、空の不変文字列を返します。これは[NSString string]、まったく同じものを返す と同等です。

新しいNSString *testString変数を宣言するだけで、メモリを割り当てたり初期化したりしません。

于 2013-07-22T03:42:07.147 に答える