私は現在、NSMutableArrayをシングルトンクラスから別のNSMutableArrayに保存するsaveWorkoutと呼ばれる関数を持っています。この関数は最初の実行で機能しますが、2回実行すると、以前に要素0に格納されていたものが消去され、新しい配列(ユーザーがテーブルをクリックしたときに収集される文字列のコレクション)に置き換えられます。 。
これが私の関数です:
-(IBAction)saveWorkout{
WorkoutManager *workoutManager = [WorkoutManager sharedInstance];
[[workoutManager workouts] insertObject: customWorkout atIndex: 0];
NSLog(@"%@", [workoutManager workouts]);
}
customWorkoutは、(ユーザーがクリックしたものに基づいて)NSMutableArrayを最初に作成するものです。したがって、最初の配列がblah1、blah2で構成されている場合、これら2つの値はworkouts配列に格納されます。ただし、次にblah2、blah 3をクリックすると、ワークアウト配列には2つの同一の配列(blah2、blah3)があり、最初の配列は保持されません。なぜこれが起こっているのか考えていますか?
これが私がcustomWorkoutを形成する方法です:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *str = cell.textLabel.text;
[customWorkout insertObject:str atIndex:0];
//Test Code: Prints Array
NSLog(@"%@", customWorkout);
}