Я пытаюсь получить данные, извлеченные из файла SQLite, я создал много приложений на основе представлений, используя только одно представление для проверки этого кода, и каждый раз он работает идеально.
Но по какой-то причине, когда существует более одного представления, оно не запускается полностью или не выдает никаких ошибок, вот код:
TorD_Questions.h
#import <UIKit/UIKit.h>
#import <sqlite3.h>
@interface TorD_Questions : UIViewController
{
sqlite3 *database;
}
- (void) MakeDBCopy;
- (void) GetQuestion;
@end
TorD_Questions.m
#import "I_Dare_YouViewController.h"
#import "About_Page.h"
#import "Settings_Page.h"
#import "Game_Info.h"
#import "Game_TDoR.h"
#import "Settings_Menu.h"
#import "TorD_Questions.h"
@implementation TorD_Questions
- (void)viewDidLoad
{
[super viewDidLoad];
[self MakeDBCopy];
[self GetQuestion];
}
NSString *fileName = @"Questions.sqlite";
- (void) MakeDBCopy
{
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:fileName];
success = [fileManager fileExistsAtPath:writableDBPath];
if (success)
{
return;
}
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName];
success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!success)
{
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
}
- (void) GetQuestion
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:fileName];
if (sqlite3_open([path UTF8String], &database) == SQLITE_OK)
{
const char *sql = "select * from Truth";
sqlite3_stmt *searchStatement;
if (sqlite3_prepare_v2(database, sql, -1, &searchStatement, NULL) == SQLITE_OK)
{
while (sqlite3_step(searchStatement) == SQLITE_ROW)
{
NSString *TheID = [NSString stringWithUTF8String:(char *)sqlite3_column_text(searchStatement, 0)];
NSString *TheQuestion = [NSString stringWithUTF8String:(char *)sqlite3_column_text(searchStatement, 1)];
NSLog(@"ID: %@ Question: %@", TheID, TheQuestion);
}
}
sqlite3_finalize(searchStatement);
}
}
@end
Если кто-то знает о проблеме с sqlite и более чем одним представлением, так как это единственное, о чем я могу думать, это отличается от этого тем временем, когда я тестировал его только с одним представлением.
Заранее спасибо.
Eli