我有一个 iPhone 应用程序,其中包含 SQLite3 数据库(2-3 个表)。当我在模拟器上构建它时,它工作正常,但在 iPhone 设备上部署它时,它会弹出一条消息 - “数据库错误 - 无法打开数据库。Hrm” 在 Consol 中显示:
警告:无法读取/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148)/Symbols/usr/lib/info/dns.so 的符号(未找到文件)。
需要帮助(因为我是 iPhone Apps 和 SQLite3 的新手) 代码:
int result;
result=sqlite3_open("/Users/saggezza/Desktop/TimeTrackerApp/login.db",&database);
-(IBAction)button_login {
sqlite3_exec(database, "CREATE TABLE IF NOT EXISTS login(ID INTEGER PRIMARY KEY AUTOINCREMENT, Username varchar,Password varchar,Name Text)",
NULL, NULL, NULL);
int ret = sqlite3_step(statement);
sqlite3_reset(statement);
if (ret == SQLITE_DONE)
{
sqlite3_finalize(statement);
sqlite3_close(database);
}
const char *sqlStatement1= "select * from login";
sqlite3_prepare_v2(database, sqlStatement1, -1, &statement,nil);
while (sqlite3_step(statement)==SQLITE_ROW)
{
NSString *uname=[[NSString alloc]initWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
NSString *pwd=[[NSString alloc]initWithUTF8String:(char *)sqlite3_column_text(statement, 2)];
ename =[[NSString alloc]initWithUTF8String:(char *)sqlite3_column_text(statement, 3)];
if ([(textField1.text) isEqualToString:uname] && [(textField2.text) isEqualToString:pwd])
{
TimeTrackerAppAppDelegate *timeTracker=(TimeTrackerAppAppDelegate *)[[ UIApplication sharedApplication] delegate];
Mainpage *sView = [[Mainpage alloc] initWithNibName:@"Mainpage" bundle:nil ];
timeTracker.name=ename;
[self.navigationController pushViewController:sView animated:YES];
// [self presentModalViewController:sView animated:YES];
return;
}
}
谢谢!
最佳答案
由于您没有发布任何代码,所以回答您的具体问题有点困难。但你可能会发现这个tutorial有帮助。它在设备上也适用于我。
关于iphone - 使用 SQLite3 部署 iPhone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5087672/