1、从服务器获取数据 进行排序并插入到数据库
获取数据
NSMutableArray *arr = [NSMutableArray array];
if ([[result class] isSubclassOfClass:[NSArray class]]) {
for (Station *obj in result) {
NSString *sectionName = [[NSString stringWithFormat:@"%c",pinyinFirstLetter([obj.stationName characterAtIndex:0])] uppercaseString];
NSUInteger firstLetter = [ALPHA rangeOfString:[sectionName substringToIndex:1]].location;
if (firstLetter != NSNotFound)
{
obj.sortLetters = sectionName;
obj.firstLetter = [NSString stringWithFormat:@"%lu", (unsigned long)firstLetter];
}
[arr addObject:obj];
}
}
StationDAO *bl = [StationDAO sharedManager];
[bl insertDataWithArray:arr];
插入到数据库方法- (void)insertDataWithArray:(NSMutableArray *)array
- (void)insertDataWithArray:(NSMutableArray *)array{
FMDatabase *db = [FMDatabase databaseWithPath:DATABASE_PATH];
if (![db open]) {
NSLog(@"数据库打开失败");
};
[db beginTransaction];
BOOL isRollBack = NO;
@try
{
for (int i = 0; i<array.count; i++)
{
Station *obj = array[i];
NSString *insertStr = [NSString stringWithFormat:@"INSERT INTO '%@' ('custId','stationCode','stationName','firstLetter','sortLetters') VALUES (?,?,?,?,?)", MSD_STATION];
[db executeUpdate:insertStr, CUST_ID, obj.stationCode, obj.stationName, obj.firstLetter, obj.sortLetters];
}
}
@catch (NSException *exception)
{
isRollBack = YES;
[db rollback];
}
@finally
{
if (!isRollBack)
{
[db commit];
}
}
[db close];
}
这种插入方式 比传统的插入方式快太多