-2

我查看了几篇帖子来回答我的问题,但我不断收到错误。

我基本上有一个包含 2 个字符的 NSString ......

myString = @"ABC";

我要做的就是将 myString 中的第一个字符分配给另一个 NSString 变量...

NSString *firstChar;
firstChar = [myString characterAtIndex:0];

执行此操作时出现此错误:

从“unichar”(又名“unsigned short”)分配给“unichar *”(又名“unsigned short *”)的不兼容整数到指针转换

我究竟做错了什么?

4

2 回答 2

3

NSString'scharacterAtIndex:返回 a unichar,而不是字符串,因此您不能将其分配给另一个字符串。您需要先从中创建一个字符串:

NSString *myString = @"ABC";
unichar firstChar = [myString characterAtIndex:0];
NSString *string = [NSString stringWithCharacters:&firstChar length:1];

当然,正如 DarkDust 所说,您还可以使用substringWithRange:从字符串的子范围中获取字符串:

[myString subStringWithRange:NSMakeRange(0, 1)]; // to get the first character
[myString subStringWithRange:NSMakeRange(1, 2)]; // to get the second and third characters
于 2013-08-10T11:57:46.977 回答
1

characterAtIndex:方法返回一个unichar(字符的整数表示)。你想要的是-[NSString substringWithRange:],比如[myString substringWithRange:NSMakeRange(0, 1)];

于 2013-08-10T11:58:32.443 回答