Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 初始化使指针从整数变为不带强制转换的整数_Iphone_Ios_Nsuinteger - Fatal编程技术网

Iphone 初始化使指针从整数变为不带强制转换的整数

Iphone 初始化使指针从整数变为不带强制转换的整数,iphone,ios,nsuinteger,Iphone,Ios,Nsuinteger,当我尝试在索引处获取字符时,收到了此警告 初始化使指针从整数变为不带强制转换的整数 代码如下: int random(arch4random()%(string.length)); NSString * char =[string charachterAtIndex:random]; 我只是想 谢谢[NSString characterAtIndex]返回一个字符,而不是字符串对象。因此,您不能将其分配给名为char(或其他名称)的NSString。你可以说: unichar ch = [st

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

初始化使指针从整数变为不带强制转换的整数

代码如下:

int random(arch4random()%(string.length));
NSString * char =[string charachterAtIndex:random];
我只是想
谢谢

[NSString characterAtIndex]返回一个字符,而不是字符串对象。因此,您不能将其分配给名为char(或其他名称)的NSString。你可以说:

unichar ch = [string characterAtIndex:random];

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

你的线路应该是

unichar character = [string charachterAtIndex:random];

作为补充说明,您不能将变量char作为C中的保留关键字调用。

本质上,编译器是在警告

NSString * name = [string characterAtIndex:random];
您正在存储一个指向NSString*的指针,该指针指向返回的字符(无符号长字符)引用的地址。 如果需要将结果字符作为NSString,则应使用如下方法

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

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

噢,无论如何,您不应该使用
char
作为变量名。这是c中的一个基本类型。这能回答你的问题吗?
[NSString substringWithRange: NSRangeFromString([NSString stringWithFormat: @"%d-%d", random, 1])];