用分号分隔字符串

Separate a String By Semicolon

我正在使用以下代码将一个字符串分成多个字符串并出现错误

NSArray *arr = [randomStr componentsSeparatedByString:@";"];

错误:

-[__NSDictionaryM componentsSeparatedByString:]: unrecognized selector sent to instance 0x1758f230 -[__NSDictionaryM componentsSeparatedByString:]: unrecognized selector sent to instance 0x1758f230

这是我的示例数据

NSArray *data = {
    {
    name = "name1";
    address = "RWP";
    ID = 0;
},
    {
    name = "name2";
    address = "RWP";
    ID = 1;
},
    {
    name = "name3";
    address = "RWP";
    ID = 2;
},}

NSString *randomStr = data[0];

我的代码有什么问题

听起来 randomStr 变量是一个 MutableDictionary。这就是为什么它不起作用。

这是我的测试:

NSString *foo = @"BAR;FOO;VAR";
NSArray *arr = [foo componentsSeparatedByString:@";"];
NSLog(@"%@", arr);

这个日志:

BAR,
FOO,
VAR

编辑: 字典到数组:

NSMutableDictionary *dict = @{@"aKey1" :@"BAR",
                              @"aKey2" :@"FOO",
                              @"aKey3" :@"VAR"}.mutableCopy;

NSMutableArray *array = [[NSMutableArray alloc] init];

for (NSString *key in dict) {
    [array addObject:dict[key]];
}
NSLog(@"%@",array);

此日志:

BAR,
FOO,
VAR

你必须确保 randomStr 是一个 NSString。 你可以检查

if ([randomStr isKindOfClass:[NSString Class]]) {

    NSArray *arr = [randomStr componentsSeparatedByString:@";"];
 }

你有一个字典数组,而不是字符串。没有什么可拆分的。

你想要这样的东西:

NSDictionary *dict = data[0];
NSString *name = dict[@"name"];
NSString *address = dict[@"address"];