iPhone: что означает этот Crash Log? - PullRequest
0 голосов
/ 02 июля 2010

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

0   libSystem.B.dylib               0x00088c24 __kill + 8
1   libSystem.B.dylib               0x00088c12 kill + 4
2   libSystem.B.dylib               0x00088c06 raise + 10
3   libSystem.B.dylib               0x0009f902 abort + 54
4   libstdc++.6.dylib               0x00065a00 __gnu_cxx::__verbose_terminate_handler() + 588
5   libobjc.A.dylib                 0x00007f1c _objc_terminate + 160
6   libstdc++.6.dylib               0x00063100 __cxxabiv1::__terminate(void (*)()) + 76
7   libstdc++.6.dylib               0x00063178 std::terminate() + 16
8   libstdc++.6.dylib               0x000632a0 __cxa_throw + 100
9   libobjc.A.dylib                 0x00006504 objc_exception_throw + 104
10  CoreFoundation                  0x000a01c0 +[NSException raise:format:arguments:] + 64
11  CoreFoundation                  0x000a01f4 +[NSException raise:format:] + 24
12  Foundation                      0x0002cbc6 -[NSPlaceholderMutableString initWithString:] + 78
13  here_my_app                     0x0002c35e 0x1000 + 176990
14  here_my_app                     0x00029a6c 0x1000 + 166508
15  UIKit                           0x000a9248 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 644
16  UIKit                           0x000a8eac -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 44
17  UIKit                           0x0006f3b8 -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1100
18  UIKit                           0x0006ce40 -[UITableView layoutSubviews] + 200
19  UIKit                           0x00014ab0 -[UIView(CALayerDelegate) _layoutSublayersOfLayer:] + 32
20  CoreFoundation                  0x000285ba -[NSObject(NSObject) performSelector:withObject:] + 18
21  QuartzCore                      0x0000a61c -[CALayer layoutSublayers] + 176
22  QuartzCore                      0x0000a2a4 CALayerLayoutIfNeeded + 192
23  QuartzCore                      0x00009bb0 CA::Context::commit_transaction(CA::Transaction*) + 256
24  QuartzCore                      0x000097d8 CA::Transaction::commit() + 276
25  QuartzCore                      0x000119d8 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 80
26  CoreFoundation                  0x00074244 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 12
27  CoreFoundation                  0x00075d9e __CFRunLoopDoObservers + 494
28  CoreFoundation                  0x000772f6 __CFRunLoopRun + 934
29  CoreFoundation                  0x0001e0bc CFRunLoopRunSpecific + 220
30  CoreFoundation                  0x0001dfca CFRunLoopRunInMode + 54
31  GraphicsServices                0x00003f88 GSEventRunModal + 188
32  UIKit                           0x00007b40 -[UIApplication _run] + 564
33  UIKit                           0x00005fb8 UIApplicationMain + 964
34  here_my_app                     0x00002f52 0x1000 + 8018
35  here_my_app                     0x00002efc 0x1000 + 7932

вот код для моего "cellForRowAtIndexPath"

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"AbfahrtszeitResultTableCell";

    AbfahrtszeitResultTableCell *cell = (AbfahrtszeitResultTableCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"AbfahrtszeitResultTableCell" owner:nil options:nil];

        for (id currentObject in topLevelObjects) {
            if ([currentObject isKindOfClass:[UITableViewCell class]]) {
                cell = (AbfahrtszeitResultTableCell *) currentObject;
                break;
            }
        }

        // make cell not-selectable
        cell.selectionStyle = UITableViewCellSelectionStyleNone;

        // background color
        BOOL day = [self isDayView];

        if (day) {
            UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:ABFAHRTSZEIT_RESULT_TABLE_CELL_BACKGROUND_IMAGE_RED]];
            cell.backgroundView = imageView;
            [imageView release];
        } else {
            UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:ABFAHRTSZEIT_RESULT_TABLE_CELL_BACKGROUND_IMAGE_BLUE]];
            cell.backgroundView = imageView;
            [imageView release];
        }

        // text color
        cell.textLabel.textColor = [UIColor whiteColor];
    }

    // Set up the cell...
    AbfahrtszeitResult *result = [abfahrten objectAtIndex:indexPath.row];
    cell.linienLabel.text = [TextUtil cleanUpString:result.linie];
    cell.zielLabel.text = [TextUtil cleanUpString:result.ziel];
    cell.zeitLabel.text = [TextUtil cleanUpString:result.zeit];

    return cell;
}

Ответы [ 2 ]

1 голос
/ 03 июля 2010

Недостаточно информации. Вы застряли. Лучше не снимать символы в следующий раз:)

В любом случае, ключевые строки:

12  Foundation    0x0002cbc6 -[NSPlaceholderMutableString initWithString:] + 78
13  here_my_app   0x0002c35e 0x1000 + 176990
14  here_my_app   0x00029a6c 0x1000 + 166508
15  UIKit         0x000a9248 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 644

Из # 15 мы знаем, что ошибка в методе -tableView:cellForRowAtIndexPath: в одном из ваших делегатов, а из # 12 мы знаем, что ошибка связана с инициализацией строки. Единственный способ, который выдает -initWithString: - это когда входной аргумент равен nil. Проверьте пользовательскую функцию, вызванную из -tableView:cellForRowAtIndexPath:, и убедитесь, что строка не является nil.

1 голос
/ 03 июля 2010

Вы читаете стопку снизу вверх. Вот ключевая область:

12  Foundation                      0x0002cbc6 -[NSPlaceholderMutableString initWithString:] + 78
13  here_my_app                     0x0002c35e 0x1000 + 176990
14  here_my_app                     0x00029a6c 0x1000 + 166508
15  UIKit                           0x000a9248 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 644

Похоже, 15 - это попытка UIKit создать ячейки для UITableView. 13 и 14 в вашем коде, вероятно, ваш tableView:cellForRowAtIndexPath: метод. 12 - это метод Foundation, работающий со строками.

Я хотел бы взглянуть на ваш tableView:cellForRowAtIndexPath: метод и посмотреть, что вы могли бы сделать неправильно при инициализации строки, или опубликовать ваш метод для проверки.

...