无法将逗号分隔的字符串转换为数组
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 的数组,这就是问题所在,如果你得到一个字符串,那么问题将被简单地解决。
【讨论】:
以上是关于无法将逗号分隔的字符串转换为数组的主要内容,如果未能解决你的问题,请参考以下文章