我想對我使用比較器選擇器進行排序的NSMutableArray;我想對同一個數組進行排序並且不想分配給其他數組。如何對NSMutableArray進行排序?
request for member 'Price' in something not a structure or union ....
其不識別self.Price。
我想對我使用比較器選擇器進行排序的NSMutableArray;我想對同一個數組進行排序並且不想分配給其他數組。如何對NSMutableArray進行排序?
request for member 'Price' in something not a structure or union ....
其不識別self.Price。
假設compare:
在Product
類中,那麼您需要使用控制檯進一步調查。
當異常發生時,什麼是self
和someObject
的價值觀 - 我敢打賭,他們中的一個或者是不是Product
或東西是被釋放(!我認爲是後者)
當碰撞發生時,您可以檢查自己和someObject的值在這樣的控制檯:
po self
po someObject
(或使用GUI控制檯的左邊)。
編輯答案評論:
sortedArrayUsingSelector:
返回一個NSArray,HomeProducts
是一個NSMutableArray。試試這個:
HomeProducts = [[HomeProducts sortedArrayUsingSelector:@selector(compare:)] mutableCopy];
我把比較:在產品類和錯誤刪除,但現在它的另一個警告,導致異常:警告:不兼容Objective-C類型分配'結構NSArray *',預期結構NSMutableArray *' – Azhar
請參閱我的編輯的答案:) – deanWombourne
你如何使用它,compare:
應該是Product
的方法。嘗試使用塊來代替:
[homeProducts sortUsingComparator: ^NSComparisonResult (id obj1, id obj2)
{
return [[obj1 Price] compare: [obj2 Price]];
}
,或者如果Price
是一個簡單的類型,用途:
[homeProducts sortUsingComparator: ^NSComparisonResult (id obj1, id obj2)
{
return ([obj1 Price] < [obj2 Price]) ? NSOrderedAscending :
([obj1 Price] > [obj2 Price]) ? NSOrderedDescending :
NSOrderedSame;
}
FWIW,這是習慣給實例變量,變量,屬性等的名稱從小寫字母開始,只有類型以大寫字母開頭。
你存儲在NSMutableArray中的對象是什麼?你可以提供相同的代碼嗎? –
http://stackoverflow.com/questions/805547/how-to-sort-an-nsmutablearray-with-custom-objects-in-it 試試這個... – shivangi
的http://計算器.COM /問題/ 805547 /如何對排序的-NSMutableArray裏與 - 自定義的對象 - - 它 看到此鏈接可能是它可以幫助你.. – shivangi