私はいくつかの異なるViewControllerで使用する必要があるソートコンパレータを持っているので、別のファイルに保管しています。私は別のファイルにソートブロックを置くことができるはずだが、これまでの方法では "認識できないセレクタがインスタンスに送られた"ように見えることを読んだ。私が持っているコードは次のとおりです。NSComparator in Separate File
#import <Foundation/Foundation.h>
typedef NSComparator (^IntBlock)(id obj1, id obj2);
@interface Utils : NSObject {
NSComparator SortObjNameComparer;
NSComparator SortObjPriceComparer;
}
@property (readwrite, copy) NSComparator SortObjNameComparer;
@property (readwrite, copy) NSComparator SortObjPriceComparer;
私は
Utils *comp = [[Utils alloc] init];
if(segmentedControl.selectedSegmentIndex == 0){
self.productArray = [self.productArray sortedArrayUsingComparator:[comp SortObjNameComparer] context:nil]; //EXC_BAD_ACCESS
} else if(segmentedControl.selectedSegmentIndex == 1){
self.productArray = [self.productArray sortedArrayUsingComparator:[Utils SortObjPriceComparer]];// EXC_BAD_ACCESS
これを行うにはクリーンな方法はあり
を使用していますこれをソートするには?
おっと。 Misread。 :) –
sortedArrayUsingFunctionはどうですか? –