私はちょうどいくつかのコードを書いています。それは私のカスタムメイドのクラスを持っています。 「WonderfulNumbers」と呼ばれるそのカスタムメイドクラスでは私がIBActionを持っている私のメインで、その後明らかに私がメインに「WonderfulNumbers」#IMPORTこのオブジェクトを使用して割り当てまたは初期化していません
- (NSString *)storedNumberAsString {
NSString *stringToReturn = [[NSString alloc]initWithFormat:@"Hello World"];
return [stringToReturn autorelease];
}
のように見える方法となど を持っています。 それは私がステップのプロセスによってステップ、およびこの背後にあるロジックを取得するには、次の
-(IBAction)displaySomeText:(id)sender {
WonderfulNumbers *myNumber = [[WonderfulNumbers alloc]init];// Step 1
NSString *numberString = [myNumber storedNumberAsString];// Step 2
[textView insertText:numberString];// Step 3
//textView is a variable of NSTextView.
[myNumber release];// Step 4
}
のように読み取ります。 私が知っていると私の自己に安心して試してみたいことは、ステップ2
で起こっている正確に何である私はステップ1、3、4
しかし、ステップ2を理解して、私は「NSStringの変数が呼ばれるcrated numberString 'と明示的に' myNumber 'という名前のオブジェクトを保持しています。意味をなさない
私が知りたいのは、NSStringクラスの 'numberString'オブジェクトを割り当てたり、初期化したことはありません。どのように私はそれを使用することができます。 割り当てられていないので解放しないことは分かっていますが、[myNumber storedNumberAsString]を実行して初期化しました。 ?
少しの説明はすばらしいでしょう。返事をいただき、ありがとうございます。
P.S.私はobjective-cのすべてがオブジェクトであることを知っていますが、この引数のためだけに、 'numberString'は技術的に "allocateとinitによって作成されていない"ので、変数を呼び出すのは正しいですか?
私は両者の違いを知っていると思うが、安心してほしい。
ありがとうございました。
"numberString"は、NSString @ "Hello World"である "storedNumberAsString"によって返された値へのポインタを格納します。 "numberString"自体はオブジェクトではなく、単にオブジェクトポインタを保持します。 (オブジェクト自体が名前を持っていると考える必要はありません。ポインタを持つ場所に名前が付いているだけです。) –
(Sam、Joe、Peteという3つの机のあるオフィスのようなものです)。座っている人にかかわらず、この机の名前はピートに移動できます彼のために他の名前がなかったので、 "ピート"として知られています。 –
素晴らしい、それは今どこにでも落ちています。ありがとう、一人の男。 –