Ich habe eine App (nur ios5), die innerhalb einer Methode eine schwache Variable deklariert, die innerhalb eines Blocks verwendet wird, um auf eine Instanz von zu verweisen ein View-Controller.Objective-C ARC __schwache Variablenreferenz löst Warnung aus "__schwäches Attribut kann nicht für eine automatische Variable angegeben werden"
QRCodeViewController * __weak weakSelf = self;
Das Problem ist, dass der Compiler eine Warnung zeigt den Worten:
__weak Attribut kann nicht auf eine automatische Variable
In dieser Anmeldung angegeben werden, ich habe eine Menge schwache Verweise verwendet haben und ich habe nie eine Warnung gesehen, der einzige Unterschied zu den anderen Klassen ist, dass diese Klasse in einer .mm-Datei implementiert ist, da sie ein C++ - Objekt verwendet und das Projekt nicht kompilieren kann, wenn ich es als .m belasse.
Ich muss sagen, dass der Code scheint gut zu funktionieren.
Irgendwelche Vorschläge?
Sollte es nicht sein '__weak QRCodeViewController * weakSelf = self;'? –
@Martin funktioniert entweder, sie sind gleichwertig, dein Weg ist der, den ich häufiger benutze, aber Andreas Weg ist derjenige, der von Apple empfohlen wird. –
Ähnliche Fragen: http://stackoverflow.com/questions/10431110/nested-blocks-and-references-to-self. Antwort war, dass das Implementierungsziel auf 4.0 gesetzt wurde, aber das ist nicht der Fall für Sie. Richtig? –