【发布时间】:2013-04-30 14:43:15
【问题描述】:
我创建了一个用于管理 SQLite 数据库的小类。但是现在,当我尝试初始化类并调用方法时 - 我收到 EXEC_BAD_ACCES 错误。我已经看到这与内存管理有关,对吧?也许有人可以在这里帮助我或给我一些建议?会很棒!
查看我的来源:
头文件:
#import <Foundation/Foundation.h>
#import "FMDatabase.h"
@interface DatabaseManager : NSObject
{
FMDatabase *database;
}
-(void)selectData;
@end
实现文件:
#import "DatabaseManager.h"
@implementation DatabaseManager {
}
/*-------------------------------------------------------
* Class constructor
* Initializes the SQLite database connection.
-------------------------------------------------------*/
-(void)init {
self = [super init];
if(self) {
// Retrieve database path
NSString* databasePath = [[NSBundle mainBundle] pathForResource:@"database" ofType:@"sqlite"];
// Connect to database
database = [FMDatabase databaseWithPath: databasePath];
// Check database connection
if(![database open]) {
database = nil;
NSLog(@"ERROR: Failed to open SQLite connection!");
}
}
}
-(void)selectData: (NSString *)withSqlQuery{
return withSqlQuery;
}
@end
类的初始化和方法的调用:
DatabaseManager *databaseManager = [[DatabaseManager alloc] init];
[databaseManager selectData];
最好的问候 ihkwiss
【问题讨论】:
-
在 EXC_BAD_ACCESS 上查看数千个现有帖子,例如stackoverflow.com/questions/9232705/…
-
[FMDatabase databaseWithPath:] 返回自动释放的对象。阅读 Objective-c 中的内存管理。
标签: objective-c memory exc-bad-access