SQLite не тянет данные - PullRequest
0 голосов
/ 19 июля 2011

Я пытаюсь получить данные, извлеченные из файла 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

1 Ответ

0 голосов
/ 26 января 2012

проблема решена, я исправил ее, переименовав базу данных SQlite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...