初始化使得指针来自整数而不是强制转换
这是代码:
int random(arch4random()%(string.length));
NSString * char =[string charachterAtIndex:random];
我只是想
感谢
答案 0 :(得分:2)
来自NSString
- (unichar)characterAtIndex:(NSUInteger)index
是方法吗?它返回一个unichar,而不是NSString。您声明您的变量是NSString指针,但unichar在幕后存储为整数。
你的专栏应该是
unichar character = [string charachterAtIndex:random];
作为附注,您不能将变量char称为C中的保留关键字。
答案 1 :(得分:0)
[NSString characterAtIndex]返回一个字符,而不是字符串对象。因此,您无法将其分配给名为char的NSString(或其他任何名称)。你可以说:
unichar ch = [string characterAtIndex:random];
答案 2 :(得分:0)
基本上,编译器通过编写
来警告NSString * name = [string characterAtIndex:random];
您将指向NSString *的指针存储到返回的字符(unsigned long)引用的地址。 如果需要将结果字符作为NSString,则应使用类似
的方法[NSString substringWithRange: NSRangeFromString([NSString stringWithFormat: @"%d-%d", random, 1])];
返回指向NSString对象的指针。