Sortdescriptor导致replaceObjectAtIndex不再起作用

时间:2014-05-25 19:50:03

标签: objective-c nstableview nsarraycontroller nssortdescriptor

以下代码在第一次调用时工作正常。但如果我删除排序,它甚至可以在第一次使用。但是一旦启用了排序,我就无法替换keywordscontroller中的值。 (keywordscontroller是一个NSArrayController)

[newkwmutabledict setObject:[NSString stringWithFormat:@"%@",[kwmutabledict valueForKey:@"keyword"]] forKey: @"keyword"];
[newkwmutabledict setObject:[NSString stringWithFormat:@"%f",newnum] forKey: @"order"];

[keywordscontroller.content replaceObjectAtIndex:selectedRow withObject:newkwmutabledict] ;

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES selector:@selector(localizedStandardCompare:)];
[keywordscontroller setSortDescriptors:[NSArray arrayWithObject:sort]];

[singleKeywordTable reloadData];

基本上,最后一行代码导致第三行代码不再起作用。为什么呢?

- 编辑 -

我的猜测是keywordscontroller.content与keywordscontroller.arrangedobjects有不同的排序。但是,如果我尝试在arrangeobjects中替换某些内容,则会失败并显示消息[_NSControllerArrayProxy replaceObjectAtIndex:withObject:]: unrecognized selector sent to instance

这里要求的是araycontroller的日志:

content = (
    {
    keyword = female;
    order = "1.000000";
},
    {
    keyword = hat;
    order = "2.000000";
},
  //..
    {
    keyword = "looking at camera";
    order = "41.000000";
}

0 个答案:

没有答案