簡體   English   中英

Obj-C - 檢查數組中的 arrays 的值?

[英]Obj-C - Check arrays within array for value?

我有一個可變數組(self.arr1),允許用戶向其中添加對象。 在這個例子中,self.arr1 被保存到 NSUserDefaults,看起來像這樣:

(
    (
        (
         "Park"
        ),
         Corner Store
     ),
     "Cafe"
),
"Brewery"
)

我正在使用下面的代碼將對象添加到 self.arr1(即,當點擊按鈕時,將對象添加到 self.arr1),然后將 self.arr1 添加到 NSUserDefaults。 然后,我想在用戶下次打開應用程序時檢查 NSUserDefaults 中是否存在“Park”。 即使它存在,代碼也在執行,就好像它不存在一樣。 這幾乎就像因為每次點擊按鈕時我都在初始化一個新數組,所以它看不到 Park 確實存在於 self.arr1 中。 如何讓我的代碼檢查 self.arr1 中的所有值?

如果在點擊按鈕時我沒有初始化數組,它根本不允許我添加對象,並且數組返回 null。

視圖控制器.m


-(void)viewDidLoad {
                                                      
    if ([self.placeDefaults containsObject:self.locationName.text]      {
                                 
                      // DO SOEMTHING

    }    
        
}
    
    
- (IBAction)collectPoints:(id)sender {
    
     self.arr1 = [[NSMutableArray alloc] init];
                                                                            
     [self.arr1 addObject:arrayOfPlaces];

     self.placeDefaults = [NSUserDefaults standardUserDefaults];
     [self.arr1 addObject:self.savedTitle];
                                                                            
     [self.placeDefaults setObject:self.arr1 forKey:@"visitedPlaces"];
    
}

您的代碼將現有數組添加為嵌套數組,然后將新的單個字符串添加到末尾。

您需要做的就是制作現有數組的可變副本,然后添加新值。 當局部變量可以使用時,也不需要使用屬性。

- (IBAction)collectPoints:(id)sender {
    
     NSMutableArray newArray = [[arrayOfPlaces mutableCopy];
                                                                            
     [newArray addObject:self.savedTitle];

     NSUserDefaults *placeDefaults = [NSUserDefaults standardUserDefaults];
                                                                            
     [placeDefaults setObject:newArray forKey:@"visitedPlaces"];
    
}

暫無
暫無

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

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