簡體   English   中英

NSUserDefaults不會存儲我的NSString

[英]NSUserDefaults won't store my NSStrings

我試圖在我的NSUserDefaults中存儲幾個字符串...無法弄清楚我在做什么錯...

-(IBAction)addToFavorite:(id)sender {
    NSMutableArray* favoritedAlready = [[[NSUserDefaults standardUserDefaults] objectForKey:@"favorites"] mutableCopy];

NSLog(@"%@",favoritedAlready);


    if (![favoritedAlready containsObject:indexPathRowString]) {
        [favoritedAlready addObject:indexPathRowString];
        [[NSUserDefaults standardUserDefaults] setObject:favoritedAlready forKey:@"favorites"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        favoritMarkerad.image = [UIImage imageNamed:@"StarFilled.png"];}

    else {
        [favoritedAlready removeObject:indexPathRowString];
        [[NSUserDefaults standardUserDefaults] setObject:favoritedAlready forKey:@"favorites"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        favoritMarkerad.image = [UIImage imageNamed:@"StarEmpty.png"];
   }

當我嘗試將我的數組加載到另一個viewcontroller中時,什么都沒有發生。

(.h)
NSMutableArray *favorites_;
@property (nonatomic, retain) NSMutableArray *favorites_;

(.m)
@synthesize favorites_;

-(void)makeData{

NSMutableArray* favoritedAlready = [[NSUserDefaults standardUserDefaults] objectForKey:@"favorites"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    favorites_ = favoritedAlready;}

“ NSLog(@”%@“,favoritedAlready);” 給“ 2012-01-25 14:53:26.360 myApp [2752:1be03](空)”有什么想法?

根據您的評論,問題在於您的NSUserDefaults沒有任何名為“收藏夾”的數組。 如果不存在,可能要創建一個。 所以:

-(IBAction)addToFavorite:(id)sender {
    // get a mutable copy of the stored array, if there is one
    NSMutableArray* favoritedAlready = [[[NSUserDefaults standardUserDefaults] 
                     objectForKey:@"favorites"] mutableCopy];

    // if there wasn't a stored array then go ahead and create one to store
    if(!favoritedAlready)
        favoritedAlready = [NSMutableArray array];

    /* ... rest of stuff here ... */
    if (![favoritedAlready ...

NSMutableArray在第一點是(null),因此您可以執行以下操作:

    if (favoritedAlready == nil) {
        favoritedAlready = [[NSMutableArray alloc] init];
    }

mutableCopy方法之后。 因此,您將向NSMutableArray添加值,而不是將其添加至(空)對象


就像湯米說的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM