Objective-c用iphone 4s插入数据

Posted

技术标签:

【中文标题】Objective-c用iphone 4s插入数据【英文标题】:Objective-c inserting data with iphone 4s 【发布时间】:2012-07-11 22:34:46 【问题描述】:

我制作了一个应用程序,其中我使用带有 fmdb 包装器的 sqlite 数据库来插入和咨询数据,数据显示在表格视图中,问题是当我在 iphone 4 上运行应用程序时一切正常,但是当我在 iphone 4s 上这样做时,它不会..有人可以帮我解决这个问题。 以下是我的部分代码:

加载数据库:

    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];

可能是表格视图以不同的方式工作 beetwen 设备?

【问题讨论】:

您必须更具体。究竟是什么不正常,清单如何? 抱歉,问题是当我尝试将新记录保存到 iphone 4 和 iphone 4s 的数据库中时,一切正常,甚至都说记录已正确创建,之后,应用程序重新加载tableview,数据库的信息应该显示在其中,4没有问题,4s没有,它显示tableview没有变化。对不起我的英语不好,希望这可以帮助,或者你需要代码吗? 您的代码在 iPhone 4 和 iPhone 4s 之间的工作方式应该相同。您是否尝试过完全删除(按住并点击“x”)每个应用程序并在设备上重新安装?这个问题可能来自早期版本的剩余资源。 我完全同意“拖把”。另一个原因可能是不同的 ios 版本(但是,这也极不可能)。 【参考方案1】:

试试下面的代码:

用于加载:

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];
 

【讨论】:

以上是关于Objective-c用iphone 4s插入数据的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 内存警告 - 无法加载任何 Objective-C 类信息

iPhone 4S 上的 Corebluetooth 故障?

我在iPhone4S上的SSH中的VIM编辑器不显示语法高亮。。

国内首例!小伙因iPhone 4s与iPad太卡不能用,将苹果告上法庭

UI 图像选择器在 ios 7/iphone 4s 上崩溃

为啥iphone用无线网可以用siri用蜂窝数据就不行