2012-05-31 2 views
1

У меня есть смешная проблема с Xcode 4.3.2. Когда я объявляю новую переменную, скажите NSMutableDictionary *var = [NSMutableDictionary alloc] init];, Xcode autocompletes NSMutableArray в LHS выражения, но не в RHS.Почему автозаполнение Xcode не работает, когда я выделяю/инициализацию переменной?

Xcode Autocomplete issue

Это раздражает, очевидно. Часто вызывает опечатки, которые я должен переконфигурировать, и, конечно же, препятствует потоку. По моему опыту это не происходит ни в какой другой ситуации.

Кто-нибудь еще когда-либо сталкивался с этим? Должен ли я поднимать ошибку?

+0

На вашем скриншоте автозаполнение NSMutableDictionary было бы неправильным в любом случае, поскольку квадратная скобка открыта. Лучший скриншот остановит педантов, как я, делая бесполезные комментарии. – jrturton

+0

На самом деле это работает с квадратной скобкой. Но я обычно использую стиль, в котором вставка конечной скобки автоматически вставляется в начало. – chirag

+0

Почему автозаполнение в том же месте работает, когда я использую какую-либо переменную вместо имени класса? – chirag

ответ

4

Я думаю, это потому, что Xcode не знает, хотите ли вы выполнить некоторую операцию с классом и попытаться найти подходящую переменную. Поэтому, если вы хотите, чтобы Xcode автоматически заполнил ваше имя класса в RHS, сначала напишите [], затем начните вводить внутри: [NS...]

+0

Так это специфично, когда RHS начинается с имени класса? Потому что он автоматически заполняет RHS, если я отправляю сообщение экземпляру. – chirag

+0

. в 'NSMutableDictionary * var = [someDict copy];', Xcode autocompletes someDict отлично работает. – chirag

+0

Кажется, это был правильный ответ. В соответствии с @jrturton в автозаполнении RHS отображаются возможные совпадения, которые приводят к переменной. Как правило, нужно всегда вводить [] для автозаполнения для работы с методами класса. – chirag

Смежные вопросы