私は同様の質問で私の問題の解決策を見つけることができませんでした。私は、fmdbラッパーを使用して、sqliteデータベースからデータ全体を抽出しています。私はfmdbユーティリティクラスに以下のようなメソッドを持っています:正しい使用法FMDB /メモリ
- (NSMutableArray *) getConnectionsForKey: (NSString *) key
{
NSString *query = [NSString stringWithFormat:@"select * from user" ];
FMResultSet *results = [database executeQuery:query];
NSMutableArray *retArray = [[ NSMutableArray alloc ] init ];
while ([ results next ]) {
NSString *fname = [ results stringForColumn:@"firstname" ];
NSString *lname = [ results stringForColumn:@"lastname" ];
NSMutableDictionary *aDictionary = [[ NSMutableDictionary alloc ]
init
];
[ aDictionary
setObject:fname
forKey:@"firstname"
];
[ aDictionary
setObject:lname
forKey:@"lastname"
];
[ retArray addObject:aDictionary ];
[ aDictionary release ];
}
[ results close ];
return retArray;
}
これは、辞書の配列に自分の情報を格納します。私のビューコントローラでは、私はそうのように私のメソッドの呼び出しを行います。
-(void) setCurrentConnections: (NSString *) key {
if (currentConnections != nil) {
[ currentConnections removeAllObjects ];
}
LocalDatabase *db = [[ LocalDatabase alloc ] init ];
[ db openDatabase ];
currentConnections = [ db getConnectionsForKey:key ];
[ db closeDatabase ];
[ db release ];
}
は今、毎回私は新しい連絡先と私の配列を更新するには、このメソッドを呼び出して、私は割り当てを観察するように構築し続ける一貫した漏れを持っていますツール。これは、データベースからロードした直後にcurrentConnectionsを解放しても、このメソッドを再度呼び出すことがない場合でも発生します。このため、データベースの実装で何かが疑われています。他の誰かがこの問題を処理しましたか?