无法将逗号分隔的字符串转换为数组

Posted

技术标签:

【中文标题】无法将逗号分隔的字符串转换为数组【英文标题】:Unable to convert comma separated string to an array 【发布时间】:2017-05-19 12:23:58 【问题描述】:

我正在使用以下代码将逗号分隔的字符串转换为数组。

NSString *domanIdStr = [Settings getSetting:@"selectedDomainId"];
NSLog(@"%@",domanIdStr);
NSArray *domainIds = [domanIdStr componentsSeparatedByString:@","];

NSLog(@"%@",domanIdStr); 打印出来

(
    "1,2"
)

但随后第三行componentsSeparatedByString抛出如下错误,

[__NSCFArray componentsSeparatedByString:]: unrecognized selector sent to instance 0x1702650c0

我怎样才能解决这个问题?

【问题讨论】:

我认为问题出在字符串 domanIDStr 上,它用括号“()”打印,检查一下。 检查您的 [Settings getSetting:@"selectedDomainId"];功能我认为它返回一个数组而不是字符串。 【参考方案1】:

NSLog(@"%@",domanIdStr); 打印出来

(
    "1,2"
)

domanIdStr 不是一个字符串,它是一个数组。因此,要正确获取 domanIdStr,请使用此

NSArray * domanIdStr = [Settings getSetting:@"selectedDomainId"];
NSString *firstTag = domanIdStr[0]; //this would be "1"

或者如果你想提取然后做喜欢

 NSArray *domanIdStr = [Settings getSetting:@"selectedDomainId"];
 NSString *getString = domanIdStr[0];
NSArray *domainIds = [getString componentsSeparatedByString:@","];
NSLog(@"%@",domanIdStr[0]);

【讨论】:

其实第一个元素是"1,2" 数组如何进入 nsstring @Anbu.Karthik bro @R.Mohan - 请原谅兄弟 NSString *domanIdStr = [设置 getSetting:@"selectedDomainId"];在这一行中 selectedDomainId 键有一个带有字符串值的数组,一个 nsarray 是如何保存在一个 nsstring 中的,因为他正在打印一个 nsstring,因为它打印了一个正确的数组。我在想,如果我们尝试将数组保存在 nsstring 中,它应该会在那个地方崩溃。 @R.Mohan - 你看到这个(了吗,它的数组,不是字符串,它是字符串"1,2"【参考方案2】:

用以下代码替换您的代码

NSArray *domanIdStr = [Settings getSetting:@"selectedDomainId"];
NSString *str = domanIdStr[0];
NSArray *domainIds = [str componentsSeparatedByString:@","];

【讨论】:

【参考方案3】:

你得到了关键 selectedDomainId 的数组,这就是问题所在,如果你得到一个字符串,那么问题将被简单地解决。

【讨论】:

以上是关于无法将逗号分隔的字符串转换为数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将逗号分隔的字符串转换为数组?

js 将数组转换为逗号分隔的字符串

如何将逗号分隔的字符串转换为数组? [复制]

将逗号分隔的字符串转换为数组[重复]

是否有内置方法可以将逗号分隔的字符串转换为数组?

如何将数组转换为逗号分隔的单词字符串? [复制]