[英]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.