sqlite3_open databasePath

时间:2013-03-02 12:04:46

标签: objective-c sqlite

我是新来的问题,但我一直在这里寻找几个问题。谢谢你的帮助。 现在我正在使用sqlite开发一个应用程序,当我在AddViewController.m中使用此代码行时:

#import <UIKit/UIKit.h>
#import "ViewController.h"
#import "AppDelegate.h"
#import "Tutorial.h"

.
.
.
if(sqlite3_open([databasePath NSUTF8StringEncoding], &database) == SQLITE_OK)
.
.
.

程序说:使用未声明的标识符'databasePath:' 我尝试了几种方法,但它只是说'databasePath'没有声明或不是@interface。但是'database'在AppDelegate.h中以相同的方式声明,并没有给出相同的错误。

这里是声明的地方:AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
    NSString *databaseName;
    NSString *databasePath;
}
@property (nonatomic, retain) NSString *databaseName;
@property (nonatomic, retain) NSString *databasePath;

我一直在寻找解决方法,但我还没有找到如何声明'databasePath'

希望你能帮助我。 感谢

1 个答案:

答案 0 :(得分:1)

问题是databasePathAppDelegate的实例变量,而不是AddViewController的实例变量。

在sqlite3_open语句之前插入这些行:

AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
NSString* databasePath = [appDelegate databasePath];

我还鼓励你使用FMDB,一个围绕SQLite的Objective-C包装。