无法将sqlite3_last_insert_rowid存储到数组中

时间:2014-09-03 14:47:35

标签: ios objective-c sqlite

我使用以下代码存储" sqlite3_last_insert_rowid"进入NSMutableArray,我得到了rowid,但没有任何东西存储在数组中。它给了我无效。

  NSUInteger rowIDNum=sqlite3_last_insert_rowid(myDatabase);
        NSNumber *xWrapped = [NSNumber numberWithInt:rowIDNum];
        [_rowID insertObject:xWrapped atIndex:0];
        NSLog(@"row ID array %@",[_rowID objectAtIndex:0]);

您能告诉我将rowid存储到数组中的正确方法吗?

1 个答案:

答案 0 :(得分:1)

我怀疑数组未分配,否则如果数组已分配但是空(即第一次调用该方法),则会得到NSRangeException

来自NSMutableArray reference

  

索引

     

要插入 anObject 的数组中的索引。这个值   不得大于数组中元素的数量。

     

重要:如果索引大于,则引发NSRangeException   数组中的元素数量。

您通常会在类init方法或viewDidLoad方法中分配数组,具体取决于类的类型。分配完阵列后,请使用:

NSUInteger rowIDNum=sqlite3_last_insert_rowid(myDatabase);
[_rowID insertObject:@(rowIDNum)];