Не удается найти ошибку EXC_BAD_ACCESS - PullRequest
0 голосов
/ 12 февраля 2012

Или, по крайней мере, я не могу понять, как найти ошибку. Я прочитал массу вещей, но каждый раз, когда я вхожу в схему продукта и включаю Guard Malloc, моя программа не запускается.

Строка кода, которая вызывает у меня проблему, заключается в следующем ... Это происходит на NSString * str = ... line

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

    //more stuff
}

Если я жестко закодирую значение завершающей даты (1350129600) в этой строке, код работает просто отлично, так что из всего, что я прочитал, видно, что памятьодобы завершения завершается где-то, или происходит что-то плохое. Мой проект настроен на ARC.

Я думаю, что часть моей проблемы в том, что я даже не знаю, куда идти, чтобы начать решать эту проблему. Я даже не знаю, что искать. Все посты, которые я читал о слежении за ним с помощью какого-либо инструмента Malloc, не имеют смысла, потому что я не могу заставить его работать.

Я бы хотел понять это. Может быть, мне нужно больше и полных шагов для отладки и отслеживания вещей. Многие из ответов, которые я прочитал, кажутся написанными для людей, которые знают все, потому что так много осталось от ответа или так много предполагается о человеке, задающем вопрос. Если для меня есть лучшее место, чтобы задать свой вопрос, пожалуйста, укажите мне в этом направлении.

Большое спасибо. Я ценю вашу помощь.

1 Ответ

0 голосов
/ 12 февраля 2012

completionDate - это double, поэтому используйте% f вместо% d.

https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html

...