Objective-C通过NSString迭代获取字符
我有这个功能:
void myFunc(NSString* data) {
NSMutableArray *instrs = [[NSMutableArray alloc] initWithCapacity:[data length]];
for (int i=0; i < [data length]; i++) {
unichar c = [data characterAtIndex:i];
[instrs addObject:c];
}
NSEnumerator *e = [instrs objectEnumerator];
id inst;
while (inst = [e nextObject]) {
NSLog("%in", inst);
}
}
我认为它失败了[instrs addObject:c]
。它的目的是遍历NSString的十六进制数。导致此代码失败的原因是什么?
没有找到相关结果
已邀请:
2 个回复
悸翠疮武昏
不是一个对象;它是一个整数类型。
只能容纳物品。 如果你真的想把它放入
,你可以将整数值包装在一个
对象中:
但是,首先将值填充到数组中的重点是什么?你知道如何遍历字符串并获取字符,为什么将它们放入数组只是为了再次遍历它们? 另请注意: “%i”NSLog格式需要一个整数;你无法传递它的对象 对于十六进制输出,您需要“%x”,而不是“%i”
怪酞撩匹
这比你的方法更有效(同样,在你的方法中你永远不会
数组,所以它会在非垃圾收集环境中泄漏)。 如果字符串包含十六进制数字,那么您将需要重复使用
的
方法,直到它返回
。