Mam aplikację (tylko ios5), która w metodzie deklaruje słabą zmienną używaną wewnątrz bloku do odwołania się do instancji kontroler widoku.Objective-C ARC __weak wyzwalacz zmiennych wyzwala ostrzeżenie "Atrybutu __weak nie można określić na zmiennej automatycznej"
QRCodeViewController * __weak weakSelf = self;
Problem polega na tym, że kompilator pokazuje ostrzeżenie, mówiąc:
atrybut __weak nie może być określona na automatycznym zmiennym
w tym zgłoszeniu Używałem wiele słabych referencji i nigdy nie widziałem takiego ostrzeżenia, jedyną różnicą w stosunku do innych klas jest to, że ta klasa jest zaimplementowana w pliku .mm, ponieważ używa obiektu C++ i projekt nie może się skompilować, jeśli zostawiam go jako .m.
Muszę powiedzieć, że kod wydaje się działać dobrze.
Jakieś sugestie?
nie powinna istnieć '__weak QRCodeViewController * weakSelf = siebie;'? –
@Martin albo działa, są one równoważne, twoja droga to ta, którą widzę częściej używana, ale sposób Andrei jest taki, który polecił Apple. –
Podobne pytanie: http://stackoverflow.com/questions/10431110/nested-blocks-and-references-toself. Odpowiedź była taka, że cel wdrożenia został ustawiony na 4.0, ale nie w tym przypadku. Poprawny? –