Parse и Xcode: блоки не будут автозаполнены.

Последняя версия Parse (1.7.1) и Xcode (6.3) Я не могу автозаполнять блоки для анализа API. Это действительно раздражает. Кто-нибудь еще сталкивался с этой проблемой?

Прежде чем, как и все остальные блоки, вы можете указать вкладку, чтобы выделить ее, а затем нажать enter.

     [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
     {

     }];

Теперь, когда я нажимаю enter, это происходит:

[query findObjectsInBackgroundWithBlock:(nullable PFArrayResultBlock(nullable )block

Ответ 1

С новым анализом обновления убрали возможность ввода и завершения блока. Я думаю, что это просто не хорошо. Но вот обходной путь. Эти блоки определены в PFConstants.h как это

typedef void (^PFBooleanResultBlock)(BOOL succeeded, NSError *PF_NULLABLE_S error);
typedef void (^PFIntegerResultBlock)(int number, NSError *PF_NULLABLE_S error);
typedef void (^PFArrayResultBlock)(NSArray *PF_NULLABLE_S objects, NSError *PF_NULLABLE_S error);
typedef void (^PFObjectResultBlock)(PFObject *PF_NULLABLE_S object,  NSError *PF_NULLABLE_S error);
typedef void (^PFSetResultBlock)(NSSet *PF_NULLABLE_S channels, NSError *PF_NULLABLE_S error);
typedef void (^PFUserResultBlock)(PFUser *PF_NULLABLE_S user, NSError *PF_NULLABLE_S error);
typedef void (^PFDataResultBlock)(NSData *PF_NULLABLE_S data, NSError *PF_NULLABLE_S error);
typedef void (^PFDataStreamResultBlock)(NSInputStream *PF_NULLABLE_S stream, NSError *PF_NULLABLE_S error);
typedef void (^PFStringResultBlock)(NSString *PF_NULLABLE_S string, NSError *PF_NULLABLE_S error);
typedef void (^PFIdResultBlock)(PF_NULLABLE_S id object, NSError *PF_NULLABLE_S error);
typedef void (^PFProgressBlock)(int percentDone);

Таким образом, ваш код будет

[query findObjectsInBackgroundWithBlock:^(NSArray *PF_NULLABLE_S objects, NSError *PF_NULLABLE_S error)

Здесь объекты ^ (NSArray * PF_NULLABLE_S, ошибка NSError * PF_NULLABLE_S) - это PFArrayResultBlock.

Чтобы ускорить работу, вы можете контролировать щелчок на PFUserResultBlock, чтобы найти определение и скопировать.

Ответ 2

У меня это исправлено, с небольшим изменением заголовков на синтаксическом разборе, это просто временный взломанный, чтобы заставить блоки работать, я reset эти изменения после того, как я загрузил новую сборку. проверено это на примере 1.7.4 и xcode 6.3.2

в PFConstants.h, удалите все экземпляры "PF_NULLABLE_S" и в PFQuery.h удалите все экземпляры "PF_NULLABLE", "PF_NULLABLE_S", "PF_ASSUME_NONNULL_BEGIN" и "PF_ASSUME_NONNULL_END"

вы получите предупреждение "Nullability Issue", но при моем тестировании отлично работает, также я reset этот заголовок возвращается, когда я загружаю новую сборку.

Ответ 3

Как я столкнулся с проблемой, было использовать автозаполнение старого стиля ^(BOOL succeeded, NSError *error) и создать фрагмент. Способ создания фрагмента состоит в том, чтобы выбрать текст и перетащить его в библиотеку фрагментов (вы можете использовать его в Google).

Я знаю, это не "Fix", но он выполняет работу как минимум:)

Ответ 4

Попробуйте реализовать его с помощью cocoapods, и автозаполнение будет работать.

Я попытался импортировать Parse SDK путем перетаскивания, автозаполнение не работает, но код будет работать. Но когда вы добавите библиотеку через pod install, она будет работать.

см. секцию установки cocoapod здесь

http://shaideru.com/?p=223