objective-c – NSTable和NSMutableArray排序

objective-c – NSTable和NSMutableArray排序,第1张

概述我有一个NSTableView,我试图排序.数据源是NSMutableArray,其中包含自定义类的实例. -(void)tableView:(NSTableView *)tableView sortDescriptorsDidChange: (NSArray *)oldDescriptors 我正在使用上面的内容,以便我可以跟踪用户何时按下表格的标题.我使用以下方法进行排序: NSSortDes 我有一个NStableVIEw,我试图排序.数据源是NSMutableArray,其中包含自定义类的实例.

-(voID)tableVIEw:(NStableVIEw *)tableVIEw sortDescriptorsDIDChange: (NSArray *)oldDescriptors

我正在使用上面的内容,以便我可以跟踪用户何时按下表格的标题.我使用以下方法进行排序:

NSSortDescriptor *sortDescriptor;sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"make" ascending:bool_asc_desc] autorelease];NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];NSArray *sortedArray;sortedArray = [ads_printers_array sortedArrayUsingDescriptors:sortDescriptors];

我想知道的是如何传递被按下的表格栏?这将允许我更改initWithKey:@“make”(使用if语句),以便我可以根据单击的标题进行排序.

谢谢.

附:我尝试过以下方法:

if ([ads_rdp_driver_table selectedColumn] == tc_make)

ads_rdp_driver_table是我的NStableVIEw,tc_make是我定义的NStableColumn.但是,我收到此错误:

ISO C禁止指针和整数之间的比较

我想如果我能找出错误,这可行.

解决方法 NStableVIEw的selectedColumn方法返回所选列的索引(而不是指向它的指针),这就是您收到编译错误的原因.要获得实际的列,请尝试这样的事情(代码我包含错误,我逐字输入):

NStableColumn * selectedColumn = (NStableColumn *)[[tableVIEw tableColumns] objectAtIndex: [tableVIEw selectedColumn]];NSLog(@"Column IDentifIEr: %@",[selectedColumn IDentifIEr]);
@H_301_50@ 总结

以上是内存溢出为你收集整理的objective-c – NSTable和NSMutableArray排序全部内容,希望文章能够帮你解决objective-c – NSTable和NSMutableArray排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1001038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存