1
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.carMakes = [[NSArray alloc]
                     initWithObjects:@"Chevy",
                     @"BMW",
                     @"Toyota",
                     @"Volvo",
                     @"Smart", nil];

    self.carModels = [[NSArray alloc]
                      initWithObjects:@"Volt",
                      @"Mini",
                      @"Venza",
                      @"S60",
                      @"Fortwo", nil];

    self.carImages = [[NSArray alloc]
          initWithObjects:@"chevy_volt.jpg",
                      @"mini_clubman.jpg",
                      @"toyota_venza.jpg",
                      @"volvo_s60.jpg",
                      @"smart_fortwo.jpg", nil];
}

上記のコードはテーブルビューに入力されます。ユーザーに数台の車を選択するオプションを提供したいと思います。そうすることで、車の名前、モデル、写真が別のリストに保存されます。ユーザーが選択したデータをどこにどのように保存すればよいかわかりません。後でTableViewにユーザーが選択した車のリストを表示できるようにしたいと思います。

  • 新しく作成したリストを保持したい場合は、選択した情報をplistファイルなどに変換する必要があることは理解していますが、その前にデータをどこに保存すればよいかわかりません。
4

2 に答える 2

2

これには配列または辞書を使用できます。しかし、より良い方法は、これらのデータを保持するモデル クラスの配列を作成することです。これは、 MVC アーキテクチャに最適です。たとえば、CarNSString *makeNSString *modelおよびUIImage *imageが宣言されたモデル クラスを作成できます。テーブル ビューにデータを入力する場合は、これらの自動車モデル オブジェクトの配列を作成し、それをデリゲート メソッドで使用してセルにデータを入力する必要があります。データを永続化したい場合は、これを辞書形式に変換してから、plist として保存できます。詳細については、ray wenderlich のこのチュートリアルを確認してください。

典型的なモデル オブジェクトは次のようになります。

@interface Car : NSObject {}
@property (nonatomic, retain) NSString *make; 
@property (nonatomic, retain) NSString *model;
@property (nonatomic, retain) UIImage *image;
@end

モデル オブジェクトの配列を次のように作成します。

Car *carObject = [[Car alloc] init];
carObject.make = @"Chevy";
//set other properties and create more objects
NSMutableArray *carList = [[NSMutableArray alloc] init];
[carList addObject:carObject]; //you can do this in a loop

[carList objectAtIndex:indexPath.row].make表示中は、などを使用できます。

また

Car *myCar = [carList objectAtIndex:indexPath.row];
cell.textLabel.text = myCar.model;

ユーザーがいくつかの車を選択したら、それらのモデル オブジェクトを別の配列に保存し、plist として保存します。

于 2012-12-03T21:18:07.433 に答える
2

Suppose, you added the following cars into an array as follows.

[arraySelectedCars addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"BMW", @"Makes", @"Mini", @"Model", @"chevy_volt.jpg", @"Image", nil]];
[arraySelectedCars addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"Toyota", @"Makes", @"Mini", @"Venza", @"toyota_venza.jpg", @"Image", nil]];

You can save them into NSUserDefaults, which reside into user's device till user delete apps or until you remove it.

[[NSUserDefaults standardUserDefaults] setValue:arraySelectedCars forKey:@"SelectedCars"];
[[NSUserDefaults standardUserDefaults] synchronize];

Later you can access the array and reload tableview as follows.

NSMutableArray *arraySelectedCars = [[NSUserDefaults standardUserDefaults] valueForKey:@"SelectedCars"];
于 2012-12-03T21:27:03.690 に答える