2015-04-16 12 views
10

Ostatnia wersja analizy składniowej (1.7.1) i Xcode (6.3) Nie mogę autouzupełniania bloków dla API parse. To naprawdę denerwujące. Czy ktoś jeszcze ma ten problem?Parsowanie i Xcode: Bloki nie będą autouzupełniane.

Wcześniej, tak jak w przypadku wszystkich innych bloków, można zaznaczyć je, a następnie nacisnąć Enter.

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

    }]; 

Teraz, kiedy nacisnąć enter, to się dzieje:

[query findObjectsInBackgroundWithBlock:(nullable PFArrayResultBlock(nullable)block 
+0

pan zrozumieć to? Ulepszony dzisiaj i mam do czynienia z tym samym problemem ... –

+2

@DavidJirman Jeszcze nie. Dam ci znać, jeśli coś wymyślę. – BlackMouse

+0

Ktoś to wymyślił? To doprowadza mnie do szału ... –

Odpowiedz

2

Dzięki nowej aktualizacji parse zabrał możliwość wejścia i zakończyć blok. Myślę, że to po prostu nie jest dobre. Ale tutaj jest obejście. Bloki te są zdefiniowane w PFConstants.h jak ten

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); 

Tak Twój kod będzie

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

Tutaj^(obiekty NSArray * PF_NULLABLE_S, NSError * błąd PF_NULLABLE_S) jest PFArrayResultBlock.

Aby przyspieszyć kontrolę, kliknij przycisk PFUserResultBlock, aby znaleźć definicję i kopię.

+0

Czy chcesz zmienić definicje w PFConstants? Nie jestem tylko pewien, że rozumiem, jak kopiowanie pomoże? Czy nie możemy zmodyfikować wyniku, aby umożliwić nam ukończenie bloku? –

0

Naprawiłem to, z niewielkimi zmianami w nagłówkach podczas analizy, jest to tymczasowy atak hakerów, aby bloki działały, zresetowałem te zmiany, gdy załadowałem nową kompilację. zweryfikowane to na parsowania 1.7.4 i 6.3.2 Xcode

w PFConstants.h, usunąć wystąpienie "PF_NULLABLE_S" i w PFQuery.h, usunąć wystąpienie "PF_NULLABLE", "PF_NULLABLE_S", "PF_ASSUME_NONNULL_BEGIN" i "PF_ASSUME_NONNULL_END"

otrzymasz ostrzeżenie "Problem Nullability", ale na moim testowaniu działa świetnie, również zresetuję te nagłówki, gdy wgrani nowy build.

+0

To nie działa dla mnie. – BlackMouse

+0

To też nie działa; to bardzo frustrujące, że nie ma na to jasnych odpowiedzi. Wsparcie! –

0

Jak obejść problem polegał na użyciu autouzupełniania starego stylu ^(BOOL succeeded, NSError *error) i utworzenia fragmentu. Sposób tworzenia fragmentu polega na zaznaczeniu tekstu i przeciągnięciu go do biblioteki fragmentów (możesz to zrobić w Google).

wiem, że nie jest to „Fix”, ale spełnia swoje zadanie przynajmniej :)

0

Spróbuj wdrożenie go cocoapods i autouzupełniania będzie działać.

Próbowałem zaimportować pakiet SDK Parse, przeciągając i upuszczając, autouzupełnianie nie działa, ale kod zostanie uruchomiony. Ale kiedy dodasz bibliotekę za pomocą podinstalacji, to zadziała.

patrz rozdział installtion cocoapod tutaj

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

+0

Używam kapsułek i nadal nie działa ... –