Список известных ошибок / ошибок XCode - PullRequest
1 голос
/ 15 июня 2011

Есть ли такой список?

Я относительно новичок в разработке для iOS, и я думаю, что было бы здорово изучить список самых известных ошибок компилятора или ошибок.

EDIT: Сегодня я потратил слишком много времени, чтобы понять, что происходит с кодом, подобным этому:

в * .h

@interface I : NSObject {
    ..
    NSSMutableArray* var; // typo, should be m_var;
}

@property (nonatomic, readonly) NSMutableArray* var;

дюйм * .м

@implementation I

@synthesize var = m_var; // no warnings or anything

-(id) init
{
    self = [super init];
    if (self != nil)
    {
        // no warning or errors
        m_var = [NSMutableArray new];
    }
    return self;
}

И я думаю, что пришло время изучить некоторые из известных идиосинкразий Objective-C.

Ответы [ 3 ]

2 голосов
/ 15 июня 2011

Список ошибок Apple является внутренним для Apple.

Я думаю, что Open Radar - самая близкая вещь, которую вы получите к общему списку ошибок, связанных с продуктами Apple, включая Xcode. Оно поддерживается сообществом - пользователям предлагается публиковать в Open Radar отчеты об ошибках, которые были отправлены в Apple.

1 голос
/ 15 июня 2011

Золотое правило отладки: это не ошибка компилятора .Некоторые виды поведения немного странные, например, тот, который вы демонстрируете здесь, но они сделаны специально.Что касается рассматриваемой «ошибки», то компилятор может синтезировать переменные экземпляра для вас без их объявления:

@interface Foo {}
@property(assign) float bar;
@end

@implementation Foo
@synthesize bar;

- (void) somewhere { bar = 1; }

@end

Это удобно и позволяет вам перемещать частные интерфейсы в файл реализации.Возвращаясь к вашему примеру, теперь у вас есть две переменные экземпляра, var и m_var, вторая действует как хранилище для свойства var.Это не совсем то, чем можно радоваться, но в этом есть смысл.(Может ли быть предупреждение, что у вас есть переменная экземпляра, которая не действует как хранилище для свойства с тем же именем?)

Так как этот тип поведения в основном задуман, вы не найдетеэто в радаре и придется искать список распространенных ошибок Objective-C.( Это - еще одна интересная ситуация.)

1 голос
/ 15 июня 2011

Apple имеет свой собственный трекер ошибок , но вы можете видеть только свои собственные отчеты (!?)

Тогда вам лучше всего openradar ... Чтоограничен.

РЕДАКТИРОВАТЬ : о вашей предполагаемой ошибке Xcode, даже если это не вопрос.

Помните, что @synthesize это просто синтаксический сахар, который будет генерировать код при компиляции.Я предполагаю, что ваше свойство var конфликтует с вашим членом var.

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

В любом случае, этоочевидно, что опечатка кода, человеческая ошибка, инструменты только для того, чтобы помочь нам, или мы бы написали байт-код сборки напрямую:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...