当我尝试在索引处获取字符时收到此警告
初始化使指针从整数而不进行强制转换
这是代码:
int random(arch4random()%(string.length));
NSString * char =[string charachterAtIndex:random];
我只想谢谢
当我尝试在索引处获取字符时收到此警告
初始化使指针从整数而不进行强制转换
这是代码:
int random(arch4random()%(string.length));
NSString * char =[string charachterAtIndex:random];
我只想谢谢
来自NSString
- (unichar)characterAtIndex:(NSUInteger)index
是方法。它返回一个 unichar,而不是 NSString。您正在声明您的变量是一个 NSString 指针,但一个 unichar 在幕后存储为一个整数。
你的线应该是
unichar character = [string charachterAtIndex:random];
作为旁注,您不能将变量 char 称为 C 中的保留关键字。
[NSString characterAtIndex] 返回一个字符,而不是一个字符串对象。所以你不能将它分配给一个名为 char 的 NSString (或命名其他任何东西)。你可以说:
unichar ch = [string characterAtIndex:random];
本质上,编译器警告说,通过编写
NSString * name = [string characterAtIndex:random];
您将指向 NSString * 的指针存储到返回的字符所引用的地址(无符号长整数)。如果您需要将结果字符作为 NSString,您应该使用类似的方法
[NSString substringWithRange: NSRangeFromString([NSString stringWithFormat: @"%d-%d", random, 1])];
它返回一个指向 NSString 对象的指针。