2015-04-09 22 views
5

Xcode 6.3'te güncelledim ve çalışma alanımda iki ayrı proje (bir framework) vardı. Objective-c gerenics hiçbir equialent yoktur"frameworkname" -Swift.h'deki genel sınıflar, "Type name, bir belirtici veya niteleyici gerektirir" hatasını Xcode 6.3'te bildiriyor.

@class Presentation; 
SWIFT_CLASS("_TtC13BusinessLogic31MeetupDetailViewControllerModel") 
@interface MeetupDetailViewControllerModel : NSObject 
@property (nonatomic) /* RsvpStore<Rsvp> */ anRsvpStore; 
@end 

: Şimdi Xcode bu "frameworkname" -Swift.h başlık dosyası otomatik olarak oluşturulan, ancak bir özelliği olarak genel bir sınıf vardı, aşağıdaki satırları üretir bu sorunu nasıl çözebilirim?

@property (nonatomic) NSObject * __nonnull anRsvpStore; 

ama her yapı ile

, bu dosya aynı yanlış sürüme yeniden oluşturulur:

ben gibi NSObject için türünü ayarlamak eğer sorunu çözebilir bulundu. Peki bu yapıyı NSObject'e ayarlamak için bu yapıyı nasıl zorlayabilirim? No için> Intall Objective-C Compatibility Header -> Swift Compiler - Code Generation -

cevap

5

ben Build Settings yılında ayarlayarak bu uyumluluk başlığını oluştururken durdurabilir.

Projemde Objective-C kodu yazmamdan beri, bu seçenekte bir sorun yoktur, ancak bu, uyumluluk üstbilgisinde jeneriklerin çözümlerinden ziyade bir çözümdür.

başka bir geçici çözüm Eğer private ile kendi özellikleri işaretlerseniz, o zaman uyumluluk başlığında görünmez olduğunu. Yeni @nonobjc nitelik seçici aksi @objc olacağını örneği üyeleri için objc ihracat bastırmak için tanıtıldı

2,0 güncelleme

Swift. (16763754) Blockquote

Test edilmedi, ama bu bir çözüm gibi görünüyor.

2

ben içeri swift kullanmanız gerekiyorsa # https://github.com/realm/realm-cocoa/issues/1873

Eğer objc içinde swift kullanmak gerekmiyorsa 1873 sadece sayılı

için intall Objective-C Uyumluluk Başlığını set çözülmesi objc, -Swift.h düzenlenmiş ve Objective-C Oluşturulan Arabirim Üstbilgi Adı

İlgili konular