2012-02-12 31 views
0

または少なくとも私はエラーを見つける方法を見つけることができません。私はたくさんのものを読んだことがありますが、私のProductスキームに入り、Guard Mallocをオンにするたびにプログラムが実行されません。EXC_BAD_ACCESSエラーを見つけることができません

私に問題を与えているコードの行はこれです...私はその行にcompletionDate値(1350129600)をハードコーディングした場合にはNSStringの* STR = ...行

- (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のメモリがどこかに足を踏み入れているか、何か悪いことが起こっているように思えます。私のプロジェクトはARC用に設定されています。

私はこの問題を解決するためにどこに行かなければならないのか分からないことが私の問題の一部だと思います。私は何を探したらいいのか分からない。 Mallocツールを使ってそれを追跡することについて私が読んだ記事の全ては、実行することができないので意味をなさない。

私はこれを理解できるようにしたいと思います。たぶん、私はデバッグや事を追跡するために、より多くのステップを完了する必要があります。私が読んだ答えの多くは、すべてを知っている人のために書かれているようです。なぜなら、あまりにも多くのことが答えから除外されているからです。私の質問に行くのが良い場所があれば、その方向で私に指摘してください。

ありがとうございます。私はあなたの助けに感謝します。

答えて

0

completionDatedoubleです。%dの代わりに%fを使用してください。

+0

私は%lfがより正確であると信じています。 –

+0

ありがとうございました。私はそれほど多くのことを知らないので、プログラムする方法を自分自身で教えているだけで、私の欠点がさらに広がります。しかし、私は決定される。ご協力いただきありがとうございます。 – jalayo

+0

@Joel:%fと%lfはprintf/scanfに当てはまると思いますが、NSStringは%fを常に使用しているようですので、この場合%lfが正しいかどうかわかりません。私の答えに上記のリンクを参照してください。 – cbranch