2012-03-11 16 views
2

私は以下のコードを使用してNSMutableArrayに文字列を追加しています。しかし私が直面している問題は、NSMutableArrayに新しい値を追加するたびに、以前の値が削除され、新しい値が入るため、常に1つの値が存在するということです。新しい入力文字列をNSMutableArray iPhoneに保存する

私はこれをNSMutableArrayからNSUserDefaultsに保存して、他の画面でも使用する必要があります。

は私が私に

コードを助けて行ってくださいたくさん検索しましたです:あなたはaddChildrenアクションを受け取るたびに、それが0のオブジェクトが含まれていることを意味しますchildArrayを再作成しますので

- (IBAction)addChildren:(id)sender { 
    inputChildName = nameOfChild.text; 
    childArray = [[NSMutableArray alloc] init]; 
    [self.childArray addObject:inputChildName]; 
    NSUserDefaults *childrenNamesForLabel = [NSUserDefaults standardUserDefaults]; 
    [childrenNamesForLabel setObject:childArray forKey:@"children"]; 
    [childrenNamesForLabel synchronize]; 
    NSLog(@"CHILDREN ARRAY::: %@", childArray); 
} 

答えて

4

、その後追加1つのオブジェクト。

childArray = [[NSMutableArray alloc] init]; 
[self.childArray addObject:inputChildName]; 

のinitまたはloadメソッドに移動childArray = [[NSMutableArray alloc] init];、それが動作するはずです。

+0

以下に、あなたのコードを変更し、) – calimarkus

+0

ちょっとマルクスは、私はそれとその作業をしましたが、私は子供を追加するには、この画面に戻ってきたときに、今の問題は、あります私はviewdidloadメソッドでその初期化を追加したので、配列は再び開始されます。今すぐどうすればいいですか? –

+0

Ok thanx私はviewdidloadメソッドのnsuserdefaultsに保存された配列で配列を初期化して解決しました。 –

0

inputChildArrayとchildarrayは、あなたのクラスのメンバー変数ですか? initメソッドまたはsmth配列で配列を初期化する必要があります。あなたのinitメソッドに

// initialise array 
childArray = [[NSMutableArray alloc] init]; 

を移動するだけです。

1

あなたがこれを行うたびに:

childArray = [[NSMutableArray alloc] init]; 

は、新しい NSMutableArrayを作成します。あなたはこの行を置く必要があります。 -viewDidLoadでこのコードが動作するようにします。

あなたは新しい配列オブジェクトには、新しい文字列を保存するたびに 初期化されている
0
childArray = [[NSMutableArray alloc] init]; 

..

あなたがの代わりに新しい配列を保存..and配列に1つの文字列を追加します。この方法前回..

...あなたのclass.hファイルへmember variableとして

をthis..add childArrayを解決し、あなたのviewDidLoadにこの

を行います
childArray = [[NSMutableArray alloc] init]; 

、あなたが速かった

-(IBAction)addChildren:(id)sender{ 
inputChildName = nameOfChild.text; 


[self.childArray addObject:inputChildName]; 

NSUserDefaults *childrenNamesForLabel = [NSUserDefaults standardUserDefaults]; 

[childrenNamesForLabel setObject:childArray forKey:@"children"]; 

[childrenNamesForLabel synchronize]; 

NSLog(@"CHILDREN ARRAY::: %@", childArray); 

} 
関連する問題