2015-09-17 16 views
5

miałem Swift klasy zadeklarowane tak:błąd @objc podczas migracji do Swift 2

@objc class MyHelper { 
// class code 
} 

miałem to zrobić, aby uzyskać dostęp do tej klasy z Objective-C klas, ponieważ jestem mieszanie języków w moim projekcie. Teraz, kiedy przeniesieni do Xcode 7, otrzymuję ten błąd:

Only classes that inherit from NSObject can be declared @objc

I taka klasa nie jest znana przez moich Objective-C klas anymore. Sądzę, że wtedy powinienem dziedziczyć moją klasę Swift z NSObject, czy to będzie miało jakikolwiek wpływ na sposób działania aplikacji?

Dzięki

Odpowiedz

3

zobaczyć personel SevenTenEleven'S reply Apple w Developer Forum Apple.

Wspomniał, że dzieje się tak z powodu @objc na klasach ukorzenionych w Swift, które nigdy nie zachowywały się jak klasa z NSObject, co prowadzi do różnych dziwactw w wygenerowanym nagłówku iw środowisku wykonawczym.

Możemy nadal traktować dowolną instancję klasy Swift jako AnyObject, oznaczać metody i właściwości klasy Swift jako @objc i dostosowywać się do protokołów Objective-C; klasa po prostu nie jest widoczna w wygenerowanym nagłówku i nie domyślnie udostępnia członków w Objective-C.

Powiązane problemy