2013-09-21 6 views
7

Zasadniczo mam aplikację IOS, która działała bez problemu.@synthesize z "słabej" właściwości jest dozwolone tylko w trybie ARC lub GC z pierwszą kompilacją Urbanship

Postępując zgodnie z instrukcjami pod numerem http://docs.urbanairship.com/build/ios.html#ios-push-getting-started, dotarłem do sekcji "Register Your Device", prosząc mnie o kompilację.

Po próbie zbudowania kodu w kodzie x 5 otrzymałem następujący komunikat: "@implementation UAPushSettingsAddTagViewController @synthesize" słabej "właściwości jest dozwolone tylko w trybie ARC lub GC".

Uwaga: tryb ARC nie jest używany.

Odpowiedz

16

Wyszukaj "słaby" w kodzie projektu i dołączonych bibliotekach. Zmienić go na „przypisać”

EDIT:

Jak @TaylorHalliday wskazuje w swoim komentarzu poniżej, moja odpowiedź była raczej niekompletne.

Zmiana słabych właściwości do przypisania spowoduje usunięcie błędów kompilatora, ale może to spowodować problemy z zarządzaniem pamięcią, jeśli nie wiesz, jak korzystać z ręcznego liczenia odwołań.

Ponieważ używasz ręcznego liczenia odwołań, musisz przejść przez swój kod i upewnić się, że zatrzymałeś obiekty, które chcesz utrwalić, a następnie zwolnić wszystkie własne odniesienia do obiektów, gdy skończysz z nimi. Wyjaśnienie szczegółów wykracza poza zakres postu na forum. Sugeruję, abyś przeszukał "O zarządzaniu pamięcią" w systemie pomocy Xcode i przeczytaj cały Podręcznik zarządzania pamięcią masową.

Prawdopodobnie należy również uruchomić narzędzie Analizuj na swoim projekcie, aby wyszukać możliwe problemy z zarządzaniem pamięcią.

Jeszcze lepiej, przekonwertuj projekt na ARC. O wiele łatwiej jest uniknąć problemów z zarządzaniem pamięcią podczas korzystania z ARC.

+0

Dzięki. Wydawało się, że pomogło mi to rozwiązać problem. – Kmb40

+0

Zaakceptuj odpowiedź? –

+0

Tak. Nie mam już problemu. Przyjęty. Dzięki. – Kmb40

1

Wystąpił ten sam błąd, gdy dodałem these two files do mojego projektu. Mój projekt nie został włączony dla ARC. Najpierw musiałem usunąć te pliki, a następnie musiałem przekonwertować mój projekt na ARC. Następnie dodanie tych plików nie spowodowało błędu.

+0

Warto zauważyć, że miałem ten problem z projektem, który został przekonwertowany na ARC. Usunięcie pliku, a następnie dodanie go do projektu naprawiło problem. –

Powiązane problemy