如果您从网络接收此数据字符串(可能是 JSON),您可以像这样处理数据(iOS 5):
- (void)processData:(NSData *)responseData {
NSError* error;
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData:responseData
options:kNilOptions
error:&error];
NSString* city = [[json objectForKey:@"Address"] objectForKey:@"City"];
NSString* country = [[json objectForKey:@"Address"] objectForKey:@"Country"];
NSString* result = [city stringByAppendingFormat:@", %@",country];
NSLog(@"%@", result); //New York, United States
}
相反,如果此字符串是字典表示,则正确的格式应如下所示:
NSString *str=@"Address = {"
@"City = \"New York\";"
@"Country = \"United States\";"
@"CountryCode = us; };";
所以如果你真的想从 NSString 传递到 NSDictionary 你可以这样使用NSPropartyListSerialization:
NSError* error;
NSData *dat=[str dataUsingEncoding:NSUTF8StringEncoding];
NSPropertyListFormat plistFormat;
NSDictionary *temp = [NSPropertyListSerialization propertyListWithData:dat options:NSPropertyListImmutable format:&plistFormat error:&error];
NSString* city = [[temp objectForKey:@"Address"] objectForKey:@"City"];
NSString* country = [[temp objectForKey:@"Address"] objectForKey:@"Country"];
NSString* result = [city stringByAppendingFormat:@", %@",country];
NSLog(@"%@",result);
编辑(根据您更新的问题):
您发布的是字典,而不是数组。字典由键值标识的一组元素组成。数组由一组由索引标识的元素组成。因此,如果数组中的元素是字符串,则必须对每个字符串进行解析。这通常不是最好的方法,正如@FelixKling 所说,您还应该使用标准格式,如 json、xml 等。