3
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES];

sortedFloats = [Arr_distance sortedArrayUsingDescriptors:
                    [NSMutableArray arrayWithObject:sortDescriptor]];

ここで、sortedFloatsはNSMutableArrayであり、Arr_distanceNSMutableArrayでもあります。

警告のIncompatible pointer types assigning to 'NSMutableArray ' from 'NSArray ' 結果は正しいのですが、警告はどうなっていますか?

4

4 に答える 4

5

NSMutableArrayの代わりにNSArraysortedFloatsとして使用してください。警告が消えたことがわかります。

プログラミングを楽しむ

于 2012-12-13T06:02:56.417 に答える
2

そのコードには2つの問題があります。

  1. のパラメータタイプはsortedArrayUsingDescriptorsNSArray渡していますNSMutableArray
  2. の戻りタイプはsortedArrayUsingDescriptors、オブジェクトNSArrayに割り当てていますかNSMutableArray

メソッドシグネチャを確認します。

- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
于 2012-12-13T06:03:24.893 に答える
0

sortedFloatsこれがのオブジェクトであり、また、メソッドが.を返すNSMutableArray配列キーを使用して配列を並べ替えます。sortedArrayUsingDescriptorsNSMutableArrayNSArray

したがって、ここでこのsortedArrayUsingDescriptorsメソッドの戻り値の型はNSArrayであり、この戻り値の型の配列をNSMutableArray名前のオブジェクトに格納すると、クラスのオブジェクトとしてsortedFloats扱われます。これがお役に立てば幸いです...sortedFloatsNSArray

于 2012-12-13T06:18:39.973 に答える
0

sortedArrayUsingDescriptors:デフォルトのオブジェクトでは、渡す必要があります。渡すNSArrayときに警告が表示されますNSMutableArray

ドキュメントによると:

- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
于 2012-12-13T05:59:40.827 に答える