インデックスで文字を取得しようとすると、この警告が表示されます
初期化により、キャストなしで整数からポインタが作成されます
ここにコードがあります:
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
方法です。NSStringではなく、unicharを返します。変数がNSStringポインターであると宣言していますが、unicharはバックグラウンドで整数として格納されます。
あなたのラインは
unichar character = [string charachterAtIndex:random];
補足として、変数charをCの予約キーワードとして呼び出すことはできません。
[NSString characterAtIndex]は、文字列オブジェクトではなく文字を返します。したがって、charという名前の(または他の名前の)NSStringに割り当てることはできません。あなたは言うことができます:
unichar ch = [string characterAtIndex:random];
基本的に、コンパイラは次のように警告しています。
NSString * name = [string characterAtIndex:random];
NSString *へのポインタを、返された文字(unsigned long)によって参照されるアドレスに格納しています。結果の文字をNSStringにする必要がある場合は、次のようなメソッドを使用する必要があります。
[NSString substringWithRange: NSRangeFromString([NSString stringWithFormat: @"%d-%d", random, 1])];
NSStringオブジェクトへのポインタを返します。