Core data NSFetchedResultsController可以';当排序属性为';都不一样

Core data NSFetchedResultsController可以';当排序属性为';都不一样,core-data,ios5,nsfetchedresultscontroller,Core Data,Ios5,Nsfetchedresultscontroller,我遇到了一个奇怪的问题,NSFetchedResultsController只能处理performFetch当所有实体.number都是相同的数字时(此NSFetchedResultsController使用number对实体进行排序。这有点像使用indexNumber属性来保持播放列表顺序的播放列表 - (IBAction)addSetPressed { int theNumber = [self.nameTextField.text intValue]; WSet *set

我遇到了一个奇怪的问题,
NSFetchedResultsController
只能处理
performFetch
当所有
实体.number
都是相同的数字时(此
NSFetchedResultsController
使用
number
对实体进行排序。这有点像使用
indexNumber
属性来保持播放列表顺序的播放列表

- (IBAction)addSetPressed {
    int theNumber = [self.nameTextField.text intValue];
    WSet *set = [WSet wSetWithNumber:theNumber inManagedObjectContext:self.workout.managedObjectContext];
    [self.workout addExercisesObject:set];
}
self.nameTextField
在我的
UITableView
的标题中。我会在那里输入一个数字,比如
1
,然后我按下一个
ui按钮,该按钮调用
addSetPressed
。该代码用于向我的模型添加一个实体,
nsfetchedresultscoontroller
检测模型中的更改并更新我的
UITableView

问题是: 当我在
self.nameTextField
中输入
1
(或任何数字)时,我可以按
ui按钮
任意次数,代码工作正常。但是当我在
self.nameTextField
中更改数字时,我会出现一个错误:

[__NSCFNumber localizedCaseInsensitiveCompare:]: unrecognized selector sent to instance 0xb665b80
CoreData: error: Serious application error.  Exception was caught during Core Data change processing.  This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.
在过去的12个小时里,我一直在乱搞我的代码,研究这个问题,但我想不出来


如果你能给我一个建议和小费,或者能给我一些有帮助的文献,那就太好了。

看起来
NSNumber
不喜欢被发送方法
localizedCaseInsensitiveCompare:

我将尝试一下,看看是否可以将排序值改为
NSString


如果您有任何更好的想法,请告诉我!

看起来
NSNumber
不喜欢被发送方法
localizedCaseInsensitiveCompare:

我将尝试一下,看看是否可以将排序值改为
NSString

如果您有更好的想法,请告诉我!

已修复

问题是,当我设置我的
sortDescriptor
时,我需要选择适当的选择器来比较我排序所依据的属性类型

这是正确的,因为数字被处理为
NSNumber

request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"number" ascending:YES selector:@selector(compare:)]];
我以前有过
NSString
的选择器。

已修复

问题是,当我设置我的
sortDescriptor
时,我需要选择适当的选择器来比较我排序所依据的属性类型

这是正确的,因为数字被处理为
NSNumber

request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"number" ascending:YES selector:@selector(compare:)]];

我以前有过NSString的选择器。

非常感谢。我当时看的地方完全错了,认为更改日期的控制器是问题所在,而导致应用程序崩溃的是进入其中的tableViewController。非常感谢。我当时看的地方完全错了,我在想问题在于更改日期的控制器,而导致应用程序崩溃的控制器是已进入其中的tableViewController。