0

当我尝试在索引处获取字符时收到此警告

初始化使指针从整数而不进行强制转换

这是代码:

int random(arch4random()%(string.length));
NSString * char =[string charachterAtIndex:random];

我只想谢谢

4

3 回答 3

2

来自NSString

- (unichar)characterAtIndex:(NSUInteger)index

是方法。它返回一个 unichar,而不是 NSString。您正在声明您的变量是一个 NSString 指针,但一个 unichar 在幕后存储为一个整数。

你的线应该是

unichar character = [string charachterAtIndex:random];

作为旁注,您不能将变量 char 称为 C 中的保留关键字。

于 2012-04-23T21:16:39.890 回答
0

[NSString characterAtIndex] 返回一个字符,而不是一个字符串对象。所以你不能将它分配给一个名为 char 的 NSString (或命名其他任何东西)。你可以说:

unichar ch = [string characterAtIndex:random];
于 2012-04-23T21:15:45.240 回答
0

本质上,编译器警告说,通过编写

NSString * name = [string characterAtIndex:random];

您将指向 NSString * 的指针存储到返回的字符所引用的地址(无符号长整数)。如果您需要将结果字符作为 NSString,您应该使用类似的方法

[NSString substringWithRange: NSRangeFromString([NSString stringWithFormat: @"%d-%d", random, 1])];

它返回一个指向 NSString 对象的指针。

于 2012-04-23T21:25:18.430 回答