ich einige Selektoren Swift 2.2 migrieren, aber ich bin ein Problem mit einem von ihnen mit:Xcode 7.3, Swift 2.2: Standard initialiser Selektor (neue Kompilierung-Check)
Code:
let hook = ARTRealtimePresenceQuery.testSuite_injectIntoClassMethod("init") { // Default initialiser
presenceQueryWasCreated = true
}
nun Xcode wollen, dass ich den Übergang zu tun helfen, aber in einer falschen Weise:
Code:
let hook = ARTRealtimePresenceQuery.testSuite_injectIntoClassMethod(#selector(_NSEnumeratorType.init)) { // Default initialiser
presenceQueryWasCreated = true
}
Ich versuche, es zu beheben:
Code:
let hook = ARTRealtimePresenceQuery.testSuite_injectIntoClassMethod(#selector(ARTRealtimePresenceQuery.init)) { // Default initialiser
presenceQueryWasCreated = true
}
Also, meine questio n ist: Wie kann ich die Standardinitialisierungsmethode mit der neuen Syntax #selector
auswählen?
(Es wurde in Swift 2.0 arbeiten.)
Aktuelle Fehler:
"mehrdeutige Verwendung von 'init()'"
UPDATE 1:
ARTRealtimePresenceQuery
Initiatoren:
- (instancetype)init;
- (instancetype)initWithClientId:(nullable NSString *)clientId connectionId:(nullable NSString *)connectionId;
- (instancetype)initWithLimit:(NSUInteger)limit clientId:(nullable NSString *)clientId connectionId:(nullable NSString *)connectionId;
sein Ich bin nicht vertraut mit diesem Rahmen, was bedeutet 'testSuite_injectIntoClassMethod' tun, und die init Methode welcher Klasse möchten Sie verweisen? - Beachten Sie, dass Selector ("init") noch gültig ist! –
@MartinR Die 'testSuite_injectIntoClassMethod' fügt einen Code-Block nach dem aktuellen' Selector' für eine bestimmte Klasse hinzu. In diesem Fall möchte ich einen Code-Block im Standard-Initialisierer von 'ARTRealtimePresenceQuery' hinzufügen. Kann ich den Selector ("init") auch ohne Warnung verwenden? Ich denke nicht. – ricardopereira
Können Sie '#selector (ARTRealtimePresenceQuery.init as() -> ARTRealtimePresenceQuery) versuchen?Es sollte ohne Vorwarnung kompilieren, aber nicht wissen, ob es wie beabsichtigt funktioniert. –