【问题标题】:convert NSArray to NSString contains NSDictionary将 NSArray 转换为 NSString 包含 NSDictionary
【发布时间】:2013-03-25 08:01:31
【问题描述】:

我正在尝试将 NSArray 转换为包含 NSDictionaryNSString ,我可以通过数组迭代和最后一个附加字符串来实现这一点,但我认为应该有一些简单的方法来实现这一点比如componentsJoinedByString:有没有

我的一个示例数组是,

[o] {name="ABC", age = "19", package = "3.4"}

[1] {name="PQR", age = "33", package = "5.0"}

[2] {name="XYZ", age = "24", package = "2.2"}

我现在正在做的是,

NSString *name = @"";
NSString *age = @"";
NSString *package = @"";
                 
for(NSDictionary *p in array)
{
    name = [name stringByAppendingFormat:@"%@,",[p valueForKey:@"name"]];

    age = [age stringByAppendingFormat:@"%@,",[p valueForKey:@"age"]];

    package = [package stringByAppendingFormat:@"%@,",[p valueForKey:@"package"]];
}
                 
name = [name substringToIndex:[name length] - 1];
age = [age substringToIndex:[age length] - 1];
package = [package substringToIndex:[package length] - 1];
                 
NSLog(@"%@",name);
NSLog(@"%@",age);
NSLog(@"%@",package);

有没有更简单的方法来获得这个?

【问题讨论】:

    标签: objective-c nsstring nsarray nsdictionary


    【解决方案1】:

    简单地做:

    假设你有 array 包含 NSDictionary 的对象。

    NSString *name = [[array  valueForKey:@"name"] componentsJoinedByString:@","];
    NSString *age = [[array  valueForKey:@"age"] componentsJoinedByString:@","];
    NSString *package = [[array  valueForKey:@"package"] componentsJoinedByString:@","];
    
    NSLog(@"%@",name);
    NSLog(@"%@",age);
    NSLog(@"%@",package);
    

    【讨论】:

    • 永远记住 valueForKey 是 KVC,objectForKey 是 nsdict 的。这里你使用的是 KVC...这可以返回数组,而 objForKey 返回一个 obj,
    猜你喜欢
    • 1970-01-01
    • 2015-04-12
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 2018-01-15
    相关资源
    最近更新 更多