我是新来的问题,但我一直在这里寻找几个问题。谢谢你的帮助。 现在我正在使用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'
希望你能帮助我。 感谢答案 0 :(得分:1)
问题是databasePath
是AppDelegate
的实例变量,而不是AddViewController
的实例变量。
在sqlite3_open语句之前插入这些行:
AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
NSString* databasePath = [appDelegate databasePath];
我还鼓励你使用FMDB,一个围绕SQLite的Objective-C包装。