2012-02-03 18 views
0

アクセスするときに空のvar値が取得されています。そのvarは正しく上書きされていました。 .Mにxcode空のvarが正しく設定されています

NSString *nomTab1; 

@property (strong, nonatomic) NSString *nomTab1; 

"NAME1は" のようなの.hで宣言されても

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    NSArray *viewControllers = [NSArray alloc]; 

    nomTab1 = [NSString alloc]; 

はsynthezidedと機能の実行時に適切に設定されています。しかし、私は別の関数(同じコントローラ)からアクセスしようとすると、空の値を持っています。基本的な問題だと思うが動作していない...ありがとう。

+0

これを割り当てる必要があります –

+0

アクセスする前に値を設定してもよろしいですか? – Ilanchezhian

+0

ご質問に情報が不十分です。初期化コードを投稿してください。 – Vignesh

答えて

0

あなたはnomTab1を保持していません。あなたはそれを合成したと言いますが、値は保持されないので、self.nomTab1 = ...を使用していません。

thisを参照して合成と特性の説明を確認してください。

0

これを初期化する必要があります。あなたのクラスには次のようなinitメソッドが必要です:

- (id)init { 
    self = [super init]; 
    if (self) { 
     // do something 
     self.nomTab1 = [NSString string]; 
    } 
    return self; 
} 
0

あなたのコードには、決して裸のallocはありません。あなたはALLOCと、​​このように、一緒にinitにする必要があります彼らは初期化されてきたまで彼らは(あなたがそれらにアクセスしたとき、彼らは空のように見える理由は、おそらくです)任意の値を持っていないので、

NSArray *viewControllers = [[NSArray alloc] initWithObjects:..]; 
nomTab1 = [[NSString alloc] initWithSomeValue:...]; 

NSArraysとNStringsは不変で、一度初期化されると変更することはできません。

これらの値を後で設定する場合は、それらをnilに設定してオブジェクトに設定するか、NSMutableArrayとNSMutableStringを使用します。これは作成後に変更できます。

関連する問題