2016-09-01 46 views
0

我在Xcode 8.0 beta上使用Swift 3.0。我已經安裝了一個使用pod的庫(FMDB),現在我正在試圖擴展它的一個類。我能夠使用我的擴展類中的API,但它在運行時崩潰。無法在Swift中擴展Objective-C類

-[FMResultSet polygonsForColumnIndex:]: unrecognized selector sent to instance 0x608000056890 

下面是該擴展的代碼:

public extension FMResultSet { 

    public func polygons(forColumnIndex index: Int32) -> [NMAMapPolygon] { 

它叫的時候,這裏崩潰:

let rs = db.executeQuery("select AsGeoJSON(geometry) from COM262_Project", withArgumentsIn: nil) 
     while (rs?.next())! { 

      //Crashes here! 
      let polygons = rs?.polygons(forColumnIndex: 0)  
     } 

注意:擴展像Alamofire其他圖書館工作。

+0

什麼是錯誤的其餘部分說改變構建設置Enable ModulesYes。還是? –

+0

** - [FMResultSet polygonsForColumnIndex:]:發送到實例0x608000056890的無法識別的選擇器** –

+0

您如何調用該方法? – Mehdzor

回答

2

您是否嘗試將函數設置爲@objc

public extension FMResultSet { 
    @objc public func polygons(forColumnIndex index: Int32) -> [NMAMapPolygon] { 

最重要的是有你,如果你的使用配置文件CLANG_ENABLE_MODULES = YES

+0

試過這個,但沒有成功。 –