2012-02-14 5 views
-1

可能性の重複:
Objective-cでは、すべてのオブジェクトがnull(0x0)で始まりますか?

Does Objective-C guarantee the initialization of interface member data?

Iは、ヘッダ(.hファイル)内のオブジェクトを宣言し、それに任意の値を割り当てません。それは何の初期値ですか?

@interface myObject: NSObject { 
    NSString *instanceObject; 
} 

- (id)init 
{ 
    NSLog(@"The value of object is: %@", instanceObject); 
    return [super init]; 
} 

これが表示されます:

The value of object is: (null) 

私はすべてのオブジェクトがガベージとnull=0x0で始まり、決してだろうと想定することはできますか?

答えて

-3

オブジェクトの場合(NSString *など)はyesですが、intやlongなどの単純な型の場合は、デフォルトでは0になりません。

およびuは、オブジェクトを解放するときuは後でもう一度それに何かを送信する場合、U'llはウルのアプリでクラッシュを取得するので、それは、デフォルトではnilになりませんので、注意してください

編集スペル

+2

これは間違っています。 _all_ ivarsは、型に関係なく、 'alloc'によって適切な0の値に初期化されます。 –

関連する問題