【问题标题】: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"];功能我认为它返回一个数组而不是字符串。

标签: ios objective-c nsstring nsarray


【解决方案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 的数组,这就是问题所在,如果你得到一个字符串,那么问题将被简单地解决。

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多