2010-02-20 22 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]]; 

虽然我不知道你为什么会要排序,你已经上线的同种的描述进行排序正上方的数组。