Я пошел бы с
typedef enum { xNew = 1, xDeleted, xModified = 4, xExisting = 8 } RecordType;
Просто потому что:
В этой Технической записке показано, как связать отчет с кодом
Одним словом … Нет. Если вы смотрите на такую строку в отчете о сбое:
0 com.apple.CoreFoundation 0x95cb046b CFArrayAppendValue + 43
«+43» не является номером строки, но ячейка памяти с самого начала функции. Код в том виде, в каком вы его написали, просто не существует в скомпилированном двоичном файле - компилятор оптимизирует и изменяет код (по крайней мере, в сборке Release), поэтому он чаще всего не соответствует тому, что вы написали.
К сожалению, решение состоит в том, чтобы предоставить человеку, у которого произошел сбой, отладочную версию, которую вы можете удаленно отлаживать или, по крайней мере, выбросить операторы NSLog (), чтобы помочь отследить ее, и / или написать более мелкие методы.