1

私のアプリケーションには2つのテーブルビューがあります。1つはメインのテーブルビューで、もう1つはお気に入りのテーブルビューです。まず、メインテーブルビューの任意の行をクリックすると、メインビューにすべてのplistデータが表示され、スクリーンショットとして次のクラスに移動します。下
ここに画像の説明を入力してください

このビューには、メインのテーブルビューから選択したテキストを表示するUILabelがあり、最も重要なのは、UIButtonをFavoritに追加することです。クリックすると現在のUIlabel値を保存し、お気に入りのテーブルビューに移動すると、この値を表示したいのですが、NSUserdefualtを使用して値を保存しようとしましたが、機能しません。最後の値が保存されないためです。過去の値の記録。これが私が試した私のコードです。

 -(IBAction)AddToF
 {
    NSString *str=lblText.text;
[[NSUserDefaults standardUserDefaults] setObject:str forKey:@"preferenceName"];
 }

そして、Favuritテーブルビューでこれらの値を取得します

- (void)viewWillAppear:(BOOL)animated 
 {
     NSString *savedValue = [[NSUserDefaults standardUserDefaults]
                        stringForKey:@"preferenceName"];
[super viewWillAppear:animated];
}

修正方法を教えてもらえますか。ありがとうございます。

4

2 に答える 2

1

以下のような文字列ではなく、userDefaultに配列を格納します。

ファイルでAppDelegate.h変数を宣言するだけです...

NSUserDefaults  *userDefaults;
NSMutableArray *yourArray;
after...

方法でAppDelegate.m塗りつぶしapplicationDidFinishLonching:

userDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingtblArrayForSearch = [userDefaults objectForKey:@"yourArray"];
if (dataRepresentingtblArrayForSearch != nil) {
    NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingtblArrayForSearch];
    if (oldSavedArray != nil)
        yourArray = [[NSMutableArray alloc] initWithArray:oldSavedArray];
    else
        yourArray = [[NSMutableArray alloc] init];
} else {
    yourArray = [[NSMutableArray alloc] init];
}
[yourArray retain];

このUserDefaultsにデータを挿入する場合は、以下のコードを使用してください。

[appDelegate.yourArray addObject:yourDataString];///set your value or anything which you want to store here...
NSData *data=[NSKeyedArchiver archivedDataWithRootObject:appDelegate.yourArray];
[appDelegate.userDefaults setObject:data forKey:@"yourArray"];
[appDelegate.userDefaults synchronize];

オブジェクトを作成するAppDelegate場合は、次のコードを使用します。

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

これがお役に立てば幸いです...

于 2012-12-21T09:41:25.297 に答える
0

3つの簡単なステップを教えてください。

1-保存されたPlistファイルから古いデータを読み取ります

NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSMutableArray *array = [NSArray arrayWithContentsOfFile:filePath];

NSLog(@"fav List = %@", array);

2-今、を使用して新しいアイテムを追加します

  [array addObject:someItem];

3-データをplistに保存します

  [array writeToFile:filePath atomically:YES];
于 2012-12-21T11:21:26.297 に答える