是否有可能按名稱檢查數組中的對象。 在我的應用程序的某個時候,我需要訪問plist,並將信息存儲在我名下找到的對象下。 我需要這樣做的原因是因爲我沒有在該數組中放置對象的整數。按名稱搜索數組中的對象
我已經開始通常的程序,但我沒有得到任何地方。也許它剛開始有點爲時已晚,我....
這是我的plist外觀
Array
Dictionary
title ...
text ...
ect ...
Dictionary
title ...
text ...
ect ...
Dictionary
title ...
text ...
ect ...
到目前爲止我的代碼是沒有幫助的。我肯定做錯了什麼。
-(NSString*)nameFromPlist:(NSString*)name {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"Orte.plist"];
_regionArray = [NSArray arrayWithContentsOfFile:writableDBPath];
NSString *string = [[NSString alloc]init];
for(NSDictionary *dict in _regionArray) {
string = [[dict objectForKey:name] valueForKey:@"title"];
}
return [NSString stringWithFormat:@"%@",string];
}
我的字符串就是返回null。
任何想法的人? 非常感謝!
答:
下面是爲大家代碼:
- (的NSString *)nameFromPlist:(的NSString *)名稱{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *tmpFileName = [[NSString alloc] initWithFormat:@"Orte.plist"];
NSString *path = [documentsDirectory stringByAppendingPathComponent:tmpFileName];
NSString *string;
NSMutableArray *array = [NSMutableArray arrayWithContentsOfFile:path];
NSDictionary *dict = [[NSDictionary alloc] init];
NSString *title;
for (int i=0; i<[array count]; i++) {
dict = [array objectAtIndex:i];
title = [dict valueForKey:@"title"];
if([title isEqualToString:name]) {
string = [dict valueForKey:@"title"];
NSLog(@"Titel: %@", string);
}
}
return [NSString stringWithFormat:@"%@",string];
}
感謝一個大家都不少!
您應該添加一個標籤的代碼的語言,那麼你有更好的機會,你的問題得到解答。 – Kai
有以下幾種可能的結果:你的'_regionArray'可能是'nil';同樣,在每次迭代中,您都會丟棄'string'的前一個值,並將其替換爲可能爲'nil'的新值。使用調試器在執行期間找出變量的實際值。 – waldrumpus