SORU
13 HAZİRAN 2014, Cuma


Can't use dersleri Objective-C iç Swift

Benim app Swift kod entegre etmek için çalışıyorum.Benim app Objective-C yazılır ve Swift bir sınıf ekledim. Her şey 23* *tarif yaptım. Ama benim sorunum Xcode -Swift.h dosya, sadece köprü başlıkları oluşturulmuş değil. Onu ben yarattım, ama aslında boş. Swift tüm ObjC derslerimi kullanabilirim, ama bunun tersi yapamam. Ama işe yaramadı @objc ile hızlı Dersim işaretlenmiş. Ben şimdi ne yapabilirim?

EDİT: Apple diyor ki:" ne Zaman sen almak Swift kodu Objective-C, güvenmek Xcode-generated başlık dosyası maruz dosyaları için Objective-C [...] bu başlık sizin ürününüz modül adı takip ekleyerek “-Swift.”. h "

Şimdi bu Dosyayı almak istiyorum, hata veriyor:

    //MainMenu.m

    #import "myProjectModule-Swift.h" //Error: 'myProjectModule-Swift.h' file not found

    @implementation MainMenu

İşte benim FBManager.swift dosya:

@objc class FBManager: NSObject {

    var descr = "FBManager class"

    init() {
        super.init()
    }

    func desc(){
        println(descr)
    }

    func getSharedGameState() -> GameState{
        return GameState.sharedGameState() //OK! GameState is written in Objective-C and no error here
    }
}

CEVAP
2 Aralık 2014, Salı


Yaklaşık 4 saat Xcode Objc-temel proje Swift etkinleştirmek için harcadım. Benim "15* *" dosyası başarıyla oluşturuldu, ancak benim 16* *Swift-classes görmedim. Xcode Objc tabanlı yeni bir proje oluşturmaya karar verdim ve sonunda doğru cevabı buldum! Bu yazı biri yardım eder umarım :-)

Böyle büyük mükafat için adım adım swift entegrasyon Objc tabanlı proje:

  1. *.swift yeni dosya (Güncellemelerinden) oluşturmak veya Bulucu kullanarak ekleyin
  2. Eğer böyle büyük mükafat önce (4 aşağıya bakınız) varsa, boş başlık köprüleme swift ekleyin
  3. @objc öznitelik: kullanarak Hızlı bir sınıf uygulamak

    import UIKit
    
    @objc class Hello : NSObject {
        func sayHello () {
            println("Hi there!")
        }
    }
    
  4. Açık Ayarları Kurmak ve bu parametreleri kontrol edin:
    • Ürün Modülü Adı :myproject
    • Modül Tanımlar :EVET
    • Gömülü İçerik Swift İçerir :EVET
    • Objective-C Uyumluluk Başlığı Yükleyin :EVET
    • Objective-C Köprü Başlığı :(SRCROOT) $/Kaynakları SwiftBridging/.h
  5. *İthal Başlığı otomatik Güncellemelerinden tarafından oluşturulur).m dosya

    #import "myproject-Swift.h"
    
  6. Böyle büyük mükafat ve proje temiz yeniden
  7. Kar!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BigDawsVlogs

    BigDawsVlogs

    17 HAZİRAN 2013
  • HTC

    HTC

    12 Ocak 2006
  • Valdorsha

    Valdorsha

    8 Mayıs 2006