私はコアロケーションフレームワークに取り組んでおり、座標間の距離を計算し、距離をデータベース(sqlite3.0)に更新しようとしています。しかし、何らかの理由で冗長データが更新されます。コードが更新に適しているかどうかわかりません。私は何人かの深刻な助けが必要です。ありがとうございました。
ここに私のコードがあります:
if(sqlite3_open([writableDBPath UTF8String],&controller)==SQLITE_OK){
NSString *str=[NSString stringWithFormat:@"select * from coordinate_table"];
sqlite3_prepare_v2(controller, [str UTF8String], -1, &statement, NULL);
int i=0;
while(sqlite3_step(statement)==SQLITE_ROW){
newlat=sqlite3_column_double(statement, 0);
newlongi=sqlite3_column_double(statement, 1);
CLLocation *newLoc=[[CLLocation alloc]initWithLatitude:newlat longitude:newlongi];
CLLocationDistance dis=[currLoc distanceFromLocation:newLoc];
NSString *dist=[NSString stringWithFormat:@"%f",dis];
[marr insertObject:dist atIndex:i];
NSString *sql=[NSString stringWithFormat:@"update coordinate_table set distance=%f where latitude=%f and longitude=%f",dis,newlat,newlongi];
NSLog(@"%@",sql);
int res=sqlite3_exec(controller, [sql UTF8String], NULL, NULL, NULL);
NSLog(@"%d",res);
i++;
}
NSLog(@"Distance Array %@",marr);
}
sqlite3_finalize(statement);
sqlite3_close(controller);
[tView reloadData];
}