私は1つのアプリケーションを開発しています。その中で、NSMutableArrayを使ってデータベースデータを格納しています。データベースからこの配列にデータを取得した後。私はそのデータの検索操作を実行しています。その時間に、その配列は最後のオブジェクトだけを返します。しかし、データベースからデータを取り出すときには、別のデータが検索されます。だから私にこの問題を解決する方法を教えてください。私のコードの一部を以下に示します。NSMutableArrayは最後のオブジェクトのみを返す
-(void)searchData
{
list=[db getlanguages];
for(for i=0;i<[list count];i++) {
databasefields *dbfield = [list objectAtIndex:i];
NSLog(@"%@",dbfield.lang);
}
}
このコードリストでは、NSMutableArray.Iはそのメモリを割り当てます。そして、その物件のための財産。
[db getlanguages]のコードは次のとおりです。
-(NSMutableArray*)getlanguages
{
NSString *query = [NSString stringWithFormat:@"SELECT * FROM A"];
sqlite3_stmt *stStatement;
NSMutableArray *getdata = [[NSMutableArray alloc]init];
if(sqlite3_prepare_v2(dbfile, [query UTF8String], -1, &stStatement, nil)==SQLITE_OK)
{
databasefields *dbfields=[[databasefields alloc]init];
while (sqlite3_step(stStatement)==SQLITE_ROW)
{
dbfields.num=sqlite3_column_int(stStatement, 0);
dbfields.lang=[NSString stringWithUTF8String:(char*)sqlite3_column_text(stStatement, 1)];
[getdata addObject:dbfields];
[dbfields release];
}
if (stStatement!= nil) {
sqlite3_finalize(stStatement);
}
}
sqlite3_close(dbfile);
return getdata;
}
コードを表示 "getlanguages" –
上記のコードに問題はないようです。問題は '[db getlanguages]'の中にあると思う。 '[リスト数]'はどうですか? –
"list"を記録しようとしましたか? –