2015-01-30 25 views
8

Objective-C dosyasında Swift sınıfını kullanmaya çalışıyorum. Benim SuperViewController.m dosyada "moduleName-Swift.h" dosyayı dahil ama yöntem parametresi olarak Swift-class ile SuperViewController.h bir kamu yöntem bildirmek çalıştığınızda Açıkçası bir hata alıyorum: eğer yapabilirsem "Expected a type"object-c - Objective-C .h dosyasında Swift sınıfları görünmez

Nasıl bir başlık dosyasına swift-class kullanabilirsiniz sadece .m dosyalarında projectModule-Swift.h içerir?

+0

Sana hızlı sınıf adının önünde @objc ayarlayabilirsiniz düşünüyorum: objc sınıf myModel (at): – Eyeball

+0

evet ben yaptım , sınıf .m dosyasında mükemmel görünür, ancak .h dosyasında değil. – Oleg

+0

H-dosyanızda, @ import myModel'i ur içe aktarmaları altında mı kullanıyorsunuz? – Eyeball

cevap

13

@objc'yi swift sınıf adından önce koyduğunuzdan emin olun. Eğer hızlı sınıf

+5

@ class ile sınıf mesajı için 'Receiver' XY 'alıyorum ileri bildirim –

+0

Merhaba @Eyeball, Bool'a nasıl erişeceğinizi biliyor musunuz? & Int Özellikleri de? –

1

ben aynı problem vardı erişmek istediğiniz

@objc myclassname { ... } 

Ayrıca obj-c başlık dosyasına yılında

@class myclassname; 

ekleyin. Obj-c .h dosyasında @Class MyClassName eklendiğinde, "Receiver 'ClassClassName' sınıf mesajı için bir ileri bildirim" hatası oluşturdu, bu yüzden bunu sildim ve SADECE hızlı sınıf isminden önce "@objc" yi ekledim. Hızlı sınıfın NSObject'in bir alt sınıfı olduğundan emin olmak için.

@objc class MySwiftClass:NSObject { ... } 

obj-c .h dosyasında @ sınıf MyClassName WITH WITH!

@obj public class MySwiftClass: NSObject { ... }

0

ı kullanmak zorunda NSObject {..}