尝试将用户在文本字段中写入的内容拆分为一个数组,其中包含所输入内容中的字符。
这是我到目前为止所拥有的
-(IBAction) generateFlashNow:(id)sender{
[textField resignFirstResponder];
NSString *string1 = textField.text;
NSString *string2 = [string1 stringByReplacingOccurrencesOfString:@"" withString:@","];
NSArray *arrayOfLetters = [string2 componentsSeparatedByString:@","];
NSLog(@"Log Array :%@", arrayOfLetters);
//NSArray *imageArray = [[NSArray alloc] init];
NSLog(@"Log First Letter of array: %@",[arrayOfLetters objectAtIndex:0]);
}
我做错了什么?
答案 0 :(得分:0)
stringByReplacingOccurrencesOfString
没有做任何事情,因此string2
是string1
的相同副本,因此没有逗号,拆分操作失败。
有很多方法可以完成这项工作。我能想到两个:
转换为字符数组:
NSString *string = @"Hello";
const char *characters = [string UTF8String];
for(int i=0; i<sizeof(characters); i++) {
NSLog(@"%c", characters[i]);
}
或者,如果您只想处理对象,请遍历每个方法并手工创建数组:
NSString *string = @"Hello";
NSMutableArray *array = [[NSMutableArray alloc] init];
for(int i = 0; i < [string length]; i++) {
NSString *myChar = [NSString stringWithFormat:@"%c", [string characterAtIndex:i]];
[array addObject:myChar];
}
您可以将上述逻辑添加到类似toArray
的方法作为NSString本身的类别,因此如果这是您的应用程序的常见情况,则所有字符串都会获得此功能。有关类别的详细信息,请查看此article。你只需要调用[someString toArray]
来获取它的数组表示。