Im получаю эту ошибку, когда им пытаются вставить что-то в моей базе данных:FMDB EXC_BAD_ACCESS когда вставки в базу данных
Странная вещь, что ошибка возникает только тогда, когда есть около 12-14 previus записей в таблицу, в которую вставлять. Кто знает, как это решить?
Вот мой код:
- (void)addToBasket:(id)sender {
NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [sysPaths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/MainDatabase.db", docDirectory];
databasePath = filePath;
db = [FMDatabase databaseWithPath:databasePath];
if (![db open]) { [db release]; return; }
NSInteger prodID = ((UIControl*)sender).tag;
[db executeUpdate:@"INSERT INTO order_items VALUES (?, ?, ?, ?)", @"", [NSNumber numberWithInt:prodID], orderID, [NSNumber numberWithInt:1], nil];
[basket insertObject:[NSNumber numberWithInt:prodID] atIndex:0];
[basketQA insertObject:[NSNumber numberWithInt:1] atIndex:0];
[basketItemName insertObject:@"test" atIndex:0];
[basketPrice insertObject:@"test" atIndex:0];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
[db close];
}
Тип идентификатора orderID - это номер NSNumber, но, как вы сказали, я перевыпускал 'db', который, как я думаю, вызвал ошибки. Он, наконец, работает теперь после удаления 'if (! [Db open]) {[db release]; вернуть; } '. Спасибо! – ebsp
Я столкнулся с тем же сообщением об ошибке, и я не смог поймать какую-либо ошибку с зомби и все такое. И это было потому, что я не знал, что я могу передать только объекты! Огромное спасибо. – huggie