2012-07-11 78 views
0

我開發的應用,其中使用即時通訊與FMDB包裝SQLite數據庫用於插入和諮詢數據,該數據被顯示爲一個表視圖,問題是,當我運行在iPhone 4的一切應用效果很好,但是當我做它在iPhone 4S也doesn't..could有人請幫我解決這個問題。
這裏是我的代碼部分:與iphone Objective-C的插入數據4S

加載DB:

aPools = [[NSMutableArray alloc] init]; 

NSString *path = [[NSBundle mainBundle] pathForResource:@"poolsDB" ofType:@"sqlite"]; 

mainDB = [[FMDatabase alloc] initWithPath:path]; 
[mainDB open]; 

FMResultSet *fResult = [ mainDB executeQuery:@"SELECT * FROM poolsData"]; 

while ([fResult next]) { 
    poolsData = [fResult stringForColumn:@"Name"]; 
    [aPools addObject:poolsData]; 
} 

[mainDB close]; 

保存:

-(void) saveIntoDB:(NSString *)name withVolume:(float)volume type:(NSString *)type andDesc:(NSString *)desc { 

[mainDB open]; 

[mainDB executeUpdate:@"INSERT INTO poolsData (Name,Volume,Type,Desc) values (?,?,?,?)",name, 
[NSNumber numberWithFloat: volume] ,type,desc, nil]; 

[mainDB close]; 

}

難道表視圖中diferent方式beetwen設備的工作原理?

+0

你將不得不更加具體。什麼工作不好,清單如何? – 2012-07-11 22:44:16

+0

對不起,確定問題是,當我嘗試保存一個新的記錄到數據庫中兩個iPhone 4和iPhone 4S的一切正常,兩個人甚至說該記錄已經做出正確,之後,應用程序重新加載tableview中和該數據庫的信息,應在其被顯示,4做沒有問題,4S沒有,就說明沒有更改的tableview。 對不起我的英文不好,希望這可以幫助,或者你需要的代碼? – 2012-07-11 22:54:55

+0

您的代碼應該在iPhone 4和4S的相同方式工作。您是否嘗試完全刪除(按住並點按'x')每個應用程序並重新安裝在設備上?此問題可能來自較早版本的剩餘資源。 – mopsled 2012-07-12 01:21:11

回答

0

試試下面的代碼:

加載:

aPools = [[NSMutableArray alloc] init]; 
NSString *path = [[NSBundle mainBundle] pathForResource:@"poolsDB" ofType:@"sqlite"]; 

FMDatabase* mainDB = [FMDatabase databaseWithPath:path]; 
if(![mainDB open]) 
{ 
    return NO; //since the error in opening database 
} 
FMResultSet *fResult = [ mainDB executeQuery:@"SELECT * FROM poolsData"]; 
while ([fResult next]) { 
    poolsData = [fResult stringForColumn:@"Name"]; 
    [aPools addObject:poolsData]; 
} 
[mainDB close]; 

代碼保存:

-(void) saveIntoDB:(NSString *)name withVolume:(float)volume type:(NSString *)type 
    andDesc:(NSString *)desc { 

    FMDatabase* mainDB = [FMDatabase databaseWithPath:path]; 
    if(![mainDB open]) 
    { 
    return; //since the error in opening database 
    } 
    [mainDB beginTransaction]; 

    [mainDB executeUpdate:@"INSERT INTO poolsData (Name,Volume,Type,Desc) VALUES 
    (?,?,?,?)",name, 
    [NSNumber numberWithFloat: volume] ,type,desc]; 

    [mainDB commit]; 
    [mainDB close]; 
}