2010-02-20 36 views
0

我在排序一個可變數組。對於分選我用:如何避免iPhone中的「NSInternalInconsistencyException」?

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"pubDate" ascending:NO]; 
[recent sortUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]]; 
recent1 = [recent sortedArrayUsingDescriptors:descriptor]; 
[descriptor release]; 

我收到此錯誤:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object'

recent1 = [recent sortedArrayUsingDescriptors:descriptor]; 

顯示警告

  • 「過客 'sortedarrayusingdescritors' 的參數1來自不同的目標c類型「和

在我的代碼,既recentrecent1 「不同於目標C型分配」 是NSMutable陣列。我哪裏出錯了?

回答

1
recent1 = [recent sortedArrayUsingDescriptors:descriptor]; 

必須是:

recent1 = [recent sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]]; 

雖然我不知道你爲什麼會要排序,你已經上線的同種的描述進行排序正上方的數組。