用分号分隔字符串

时间:2015-09-30 05:52:02

标签: ios objective-c nsarray unrecognized-selector

我使用以下代码将字符串分成多个字符串并收到错误

[
    'class' => 'yii\grid\CheckboxColumn',
    'checkboxOptions' => function($data) {
        return ['value' => $data->user_id];
    },
],

错误:

  

- [__ NSDictionaryM componentsSeparatedByString:]:无法识别的选择器发送到实例0x1758f230    - [__ NSDictionaryM componentsSeparatedByString:]:无法识别的选择器发送到实例0x1758f230

这是我的样本数据

textSub = function(str) {
  return str.replace(/[;0-9#]*/g, '');
};

我的代码有什么问题

3 个答案:

答案 0 :(得分:4)

你有一系列字典,而不是字符串。没有什么可以拆分的。

你想要这样的东西:

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

答案 1 :(得分:1)

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

这是我的测试:

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

Thise Logs:

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

答案 2 :(得分:1)

您必须确保randomStr为NSString。 您可以查看

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

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