Objective c 如何将[NSString characterAtIndex:]保存到可变数组

Objective c 如何将[NSString characterAtIndex:]保存到可变数组,objective-c,nsstring,nsmutablearray,Objective C,Nsstring,Nsmutablearray,在将数据从一种格式保存到另一种格式时,我遇到了很多问题。 我有一个类似“BC01234”的NSString,我想在已经存在的NSMuttableArray中分别保存数字“1”、“2”、“3”和“4”。我想以后用它作为数字。 怎么做 我试着说: self.poziomGrzania[0] = [NSNumber numberWithInteger:[dataString characterAtIndex:3]]; 但它不起作用 我该怎么做呢?代码中有两件事隐含着错误:如果要添加到空数组,那么(1

在将数据从一种格式保存到另一种格式时,我遇到了很多问题。 我有一个类似“BC01234”的
NSString
,我想在已经存在的
NSMuttableArray
中分别保存数字“1”、“2”、“3”和“4”。我想以后用它作为数字。 怎么做

我试着说:

self.poziomGrzania[0] = [NSNumber numberWithInteger:[dataString characterAtIndex:3]];
但它不起作用


我该怎么做呢?

代码中有两件事隐含着错误:如果要添加到空数组,那么(1)数组不应通过索引寻址,以及(2)将字符转换为数字的计算因值“0”而关闭。所以

NSMutableArray *array = [@[] mutableCopy];
NSString *digits = [@"BC01234" substringFromIndex:2];

for( int i=0 ;i<digits.length; ++i) {
    [array addObject:@([digits characterAtIndex:i] - '0')];
}
NSLog(@"%@", array);
NSMutableArray*array=[@[]mutableCopy];
NSString*数字=[@“BC01234”substringFromIndex:2];

对于(int i=0;iDefine“不工作”.以什么方式?具体点。问题是我不知道出了什么问题。我正在处理一个应用程序,它从NSData获取此字符串,该字符串来自BLE设备的一个特征。当我不使用这部分代码时,应用程序看起来不错,它与设备双向通信。但当我试图使用此NSString从设备获取一些INT时并在屏幕上显示所有内容都开始崩溃。从NSString到NSMutableAray的转换是一个常见问题,还是我应该看看其他地方?用崩溃的详细信息更新您的问题。谢谢!但我尝试添加的NSMutableArray不是空的。它的初始设置如下:self.poziomGrzania=[NSMutableArray数组,其对象:@0、@0、@0、nil];请您解释一下这部分内容好吗?数组[i]=@([digits characterAtIndex:i]-“0”);我不知道menas@()是什么,为什么我要减法(?)“0”?当然可以。减号表达式测量两个ascii值之间的距离。从字符串中提取的字符值减去第一个数字“0”的ascii值。这是因为这些数字在ascii中连续出现(从“0”开始)。请参见此处
NSMutableArray *array = [NSMutableArray arrayWithObjects: @0, @0, @0, @0, nil];
NSString *digits = [string substringFromIndex:2];

for( int i=0 ;i<digits.length; ++i) {
    array[i] = @([digits characterAtIndex:i] - '0');
}
NSLog(@"%@", array);