2012-02-12 39 views
0

或者至少我不知道如何找到错误。我读过很多东西,但每次进入我的产品方案并打开Guard Malloc时,我的程序将无法运行。找不到EXC_BAD_ACCESS错误

那是给我的问题,这行代码是这样的......它发生在的NSString *海峡= ...线

- (void) setVolumeCompletionDate: (NSString *)volumeID: (double)completionDate 
{ 
    sqlite3_stmt *pStmt; 
    NSString *str = [NSString stringWithFormat:@"UPDATE Volumes SET GoalDate = %d WHERE VolumeID = '%@'", completionDate, volumeID]; 

    //more stuff 
} 

如果我硬编码在该行的completionDate值(1350129600) ,代码工作得很好,所以从我读过的所有内容看来,completionDate的内存正在增加,或者发生了一些不好的事情。我的项目是为ARC设立的。

我想我的问题的一部分是我甚至不知道从哪里开始解决这个问题。我甚至不知道要搜索什么。我所阅读的关于使用一些Malloc工具跟踪它的所有帖子都没有意义,因为我无法运行它。

我想能够弄清楚这一点。也许我需要更多,完整的步骤来调试和跟踪事物。我读过的许多答案看起来好像是写给那些知道所有事情的人,因为答案中没有太多内容,或者提出这个问题的人被假设得太多。如果我有更好的地方去问我的问题,请指出我的方向。

非常感谢。我感谢您的帮助。

回答

0
+0

我相信%lf会更精确。 – 2012-02-12 05:35:25

+0

非常感谢。有太多我不知道,我花每一分钟教自己如何编程,只会暴露我的缺点。但是,我有决心。谢谢你的帮助。 – jalayo 2012-02-12 05:43:47

+0

@Joel:我认为%f对%lf适用于printf/scanf,但NSString似乎总是使用%f,所以我不确定%lf在这种情况下是否正确。请参阅我在答案中添加的链接。 – cbranch 2012-02-12 06:01:08