从swift 2.3迁移到swift 3时出错

时间:2017-04-14 06:17:14

标签: swift swift3

我只是想在我的一个项目中尝试使用Swift 3.0,它在Swift 2.Xcode版本8.3.1中运行良好

我修复的所有内容但在FXForm库中出错。这是我在项目编译时遇到的错误:

    "_OBJC_CLASS_$__TtCC13Test11AppDelegate15FXFormVariables", referenced from:
      objc-class-ref in FXForms.o
error: linker command failed with exit code 1 (use -v to see invocation)

我已经从App委托中传递了登录用户验证,如下所示:

 //objective C class
@objc class loggedinUser : NSObject {
    class func isUserLoggedIn() -> Bool { return userLoggedin! }
}

并在下面的FXForm的Objective-C类中使用它:

if([loggedinUser isUserLoggedIn] == true){
// default to bottom
return CGPointMake(self.bounds.size.width/2, (self.bounds.size.height - (toast.frame.size.height / 2)) - style.verticalPadding - 120);
}

请帮助修复上述错误并提前致谢。

1 个答案:

答案 0 :(得分:1)

这不是Swift 2到Swift 3的重构问题。

这是一个需要确保在项目中编译FXForms .m文件的问题。你包括.h&你项目中的.m文件?

转到Xcode窗口的文件检查器(左侧文件列表),单击FXForms.m文件并确保选中“Target Membership”,如此屏幕截图的右侧红色圆圈所示: Make sure target membership is checked