-1

我是新来的,在这里提问,但我一直在这里寻找几个问题。谢谢你的帮助。现在我正在使用 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。但是“数据库”在 AppDelegate.h 中以相同的方式声明,并且没有给出相同的错误。

这是声明的位置:AppDelegate.h

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

我一直在寻找很多来解决它,但我还没有找到如何声明'databasePath'

希望您能够帮助我。谢谢

4

1 回答 1

1

问题是它databasePath是一个实例变量AppDelegate而不是AddViewController.

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

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

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

于 2013-03-02T12:52:51.837 回答