我有一个NSString * titleName,它根据if语句改变。所以字符串中的长度(字符数)会发生变化。我想将titleName分成一个MutableArray,它由单独的字符组成。然后我想将这些单独的字符串用作不同UILabel中的文本。我不确定如何解决这个问题。
通过一些研究,我试图像这样创建NSMutable数组
NSMutableArray *letterArray = substringWithRange:((i = 0);i<[titleName2 length];i++));
但是这给了我一个错误使用未声明的标识符'substringWithRange。
有人可以帮助我。
我决定使用componentsSeparatedByString而只是在每个字母之间用a创建我的各种字符串。感谢任何人的想法。
答案 0 :(得分:0)
您粘贴的代码不是有效的Objective-C。 要保持相同的算法,您应该编写类似的内容:
NSMutableArray *letterArray = [NSMutableArray array];
NSUInteger length = [titleName2 length];
for (NSUInteger i = 0; i < length; ++i) {
[letterArray addObject:[titleName2 substringWithRange:NSMakeRange(i, 1)]];
}
答案 1 :(得分:0)
持有构成字符串的unichar
字符的C数组可能要“更便宜”。创建它也会更快:
NSString *input = @"How now brown cow?";
unichar chars[[input length]];
for (NSInteger i = 0; i < [input length]; i++)
chars[i] = [input characterAtIndex:i];
或者,您可以使用malloc()
创建C阵列:
NSString *input = @"How now brown cow?";
unichar *chars = (unichar *)malloc([input length]);
for (NSInteger i = 0; i < [input length]; i++)
chars[i] = [input characterAtIndex:i];
然后使用free()
,以后,错误地释放内存:
free(chars);
更便宜的是,根本不会拆分字符串......
答案 2 :(得分:0)
请尝试以下代码
NSMutableArray *letterArray = [NSMutableArray array];
for (int i = 0;i<[titleName2 length];i++)
{
[letterArray addObject: [titleName2 substringWithRange:NSMakeRange(i,1)]];
}
DLog(@"%@", letterArray);
获取字符串
字符的其他选项NSMutableArray *letterArray = [NSMutableArray array];
for (int i=0; i < [titleName2 length]; i++)
{
[letterArray addObject:[NSString stringWithFormat:@"%c", [titleName2 characterAtIndex:i]]];
}
DLog(@"characters - %@", letterArray);