2016-09-01 5 views
0

Xcode 8.0 베타에서 Swift 3.0을 사용하고 있습니다. 포드 (FMDB)를 사용하여 라이브러리를 설치했으며 이제는 클래스 중 하나를 신속하게 확장하려고합니다. 내 확장 클래스에서 API를 사용할 수 있지만 런타임에 충돌이 발생합니다. 라고 할 때 그것은 여기 충돌Swift에서 Objective-C 클래스를 확장 할 수 없습니다.

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)  
     } 

:

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

다음은 확장 코드입니다 확장 Alamofire 같은 다른 라이브러리를 작동합니다.

+0

오류의 나머지 부분은 무엇을 말하는가 CLANG_ENABLE_MODULES = YES를 사용하는 경우 YesEnable Modules 설정 빌드를 변경 .. 아니면이? –

+0

** - [FMResultSet polygonsForColumnIndex :] : 인식 할 수없는 선택기가 인스턴스로 전송 됨 0x608000056890 ** –

+0

메서드를 어떻게 호출합니까? – Mehdzor

답변

2

@objc과 같이 기능을 설정해 보셨습니까? 그 꼭대기에

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

은 당신의 설정 파일

+0

시도했지만 성공하지 못했습니다. –