To keep it fancy, give this a shot, works for me:
NSDMutableDictionary *aircraftDict = [NSDMutableDictionary dictionary];
// only insert non-nil text fields
if(self.aircraftIdTextField.text){
aircraftDict[@"aircraft_id"] = self.aircraftIdTextField.text;
}
etc for all other text fields...
NSArray* keys = [aircraftDict allKeys];
NSMutableArray *prefixedKeys = [NSMutableArray array];
[keys enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
[prefixedKeys addObject:[NSString stringWithFormat:@":%@",obj]];
}];
NSString *addAircraftQuery = [NSString stringWithFormat: @"INSERT INTO aircrafts (%@) VALUES (%@)",[keys componentsJoinedByString:@","],[prefixedKeys componentsJoinedByString:@","]];
[db executeUpdate:addAircraftQuery withParameterDictionary:aircraftDict];
Now the insert only contains the fields that you want to insert, so its super efficient.