2
我想使用SortDescriptor對具有IPv4地址的NSTableView列進行排序。這是我到目前爲止有:使用IPv4地址對NSTableView列排序
NSArray *devicesSortDescriptor = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"ip" ascending:YES comparator:^NSComparisonResult(id ipstring1, id ipstring2) {
const char * ipch1 = [ipstring1 cStringUsingEncoding:NSASCIIStringEncoding];
const char * ipch2 = [ipstring2 cStringUsingEncoding:NSASCIIStringEncoding];
struct in_addr ip1, ip2;
inet_aton(ipch1, &ip1);
inet_aton(ipch2, &ip2);
if (ip1.s_addr > ip2.s_addr)
return NSOrderedDescending;
else if (ip1.s_addr == ip2.s_addr)
return NSOrderedSame;
else
return NSOrderedAscending;
}]];
這是結果:
我在做什麼錯?我的意思是如果ip1.s_addr> ip2.s_addr那麼它的原因NSOrderedDescending .. o_O
謝謝!
爲我工作,謝謝! – jonbauer 2015-03-02 00:20:41