所以这是我的设置。我有一个名为 RadioStations 的对象,其中有几个字符串,如呼号、声明的频率和一个名为 amStationInfo 的 NSMutableArray。在我的视图控制器上,我访问了一个 SQLite 数据库,该数据库像这样填充数组......
RadioStations.h
@interface RadioStations : NSObject {
NSString *format;
NSString *city;
}
@property (nonatomic, retain) NSString *format;
@property (nonatomic, retain) NSString *city;
视图控制器.m
NSMutableArray* amStationInfo = [[NSMutableArray alloc] init];
while (sqlite3_step(statement) == SQLITE_ROW)
{
NSString *cityField = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(statement, 10)];
NSString *formatField = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(statement, 0)];
RadioStations *amStationClass = [[RadioStations alloc] init];
[amStationClass setCity:cityField];
[amStationClass setFormat:formatField];
[amStationInfo addObject:amStationClass];
}
[tabView reloadData];
sqlite3_finalize(statement);
然后我填充一个 UITableView
NSString *cityValue = [(RadioStations *)[amStationInfo objectAtIndex:indexPath.row] city];
NSString *formatValue = [(RadioStations *)[amStationInfo objectAtIndex:indexPath.row] format];
cityLabel.text = cityValue;
formatLabel.text = formatValue;
我希望能够根据城市(字母)或格式(数字)以及两者、城市和格式对 UITable 结果进行排序。我知道格式是 NSString,假设我已经得到了它的 doubleValue。我想要这样的结果......
城市(按字母顺序) 1) 洛杉矶 - 5.0 2) 旧金山 - 3.0 3) 圣何塞 - 10.0 4) 圣何塞 - 2.0 5) 圣何塞 - 4.0
格式(数字) 1) 圣何塞 - 2.0 2) 旧金山 - 3.0 3) 圣何塞 - 4.0 4) 洛杉矶 - 5.0 5) 圣何塞 - 10.0
两者(城市然后格式) 1) 洛杉矶 - 5.0 2) 旧金山 - 3.0 3) 圣何塞 - 2.0 4) 圣何塞 - 4.0 5) 圣何塞 - 10
我有一种方法可以像这样对格式进行排序......在 RadioStations.m
- (NSComparisonResult)sortByFormat:(id)anObject
{
if (self.format < anObject.format) {
return NSOrderedAscending;
} else if (self.format > anObject.format) {
return NSOrderedDescending;
}
return NSOrderedSame;
}
但我在'_strong id'类型的对象上找不到“属性'格式',它突出显示了anObject.format