注册 登录
主题 : 更新swift4 问题求助!
级别: 新手上路
状态: 连续签到 - [2天]
UID: 239425
精华: 0
发帖: 21
可可豆: 97 CB
威望: 86 点
在线时间: 211(时)
注册时间: 2013-08-26
最后登录: 2017-10-17
0 楼:  发表于: 2017-09-28 16:43    发自: Web Page
来源于 调试问题 分类

更新swift4 问题求助!   

首先说明我的项目为混编项目,用到oc的第三方库
先升级到 swift4 ,编译项目 xcode提示
?The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the "Swift 3 @objc Inference" build setting to "Default" for the "ERP" target.


按照网上提供的方法 将targets 里面的 swift 3 @obj inference 设置为 off, 将导致oc的代码没法使用;
如果将 swift 3 @obj inference 设置为on 在运行项目时,控制台输出提示


*** /Users/ifly/Desktop/ERP/ERP/ViewControllers/MainViewController/Model/ERPProlistModel.swift:16:5: implicit Objective-C entrypoint -[ERP.ERPProlistModel setBuildArea:] is deprecated and will be removed in Swift 4; add explicit '@objc' to the declaration to emit the Objective-C entrypoint in Swift 4 and suppress this message
2017-09-28 16:25:28.229613+0800 ERP[20641:1612573] *** /Users/ifly/Desktop/ERP/ERP/ViewControllers/MainViewController/Model/ERPProlistModel.swift:16:5: implicit Objective-C entrypoint -[ERP.ERPProlistModel setBuildArea:] is deprecated and will be removed in Swift 4; add explicit '@objc' to the declaration to emit the Objective-C entrypoint in Swift 4 and suppress this message
Current stack trace:
0    libswiftCore.dylib                 0x000000010f03d330 swift::warning(unsigned int, char const*, ...) + 228
1    libswiftCore.dylib                 0x000000010f06fd10 swift_objc_swift3ImplicitObjCEntrypoint + 586
2    ERP                                0x000000010a86ea00 @objc ERPProlistModel.BuildArea.setter + 64
3    Foundation                         0x000000010b0710bf -[NSObject(NSKeyValueCoding) setValue:forKey:] + 292
4    MJExtension                        0x000000010aeee870 -[MJProperty setValue:forObject:] + 255
5    MJExtension                        0x000000010aef26d0 __48-[NSObject(MJKeyValue) mj_setKeyValues:context:]_block_invoke + 6400
6    MJExtension                        0x000000010aefa000 +[NSObject(Property) mj_enumerateProperties:] + 409
7    MJExtension                        0x000000010aef22f0 -[NSObject(MJKeyValue) mj_setKeyValues:context:] + 719
8    MJExtension                        0x000000010aef2270 -[NSObject(MJKeyValue) mj_setKeyValues:] + 79
9    MJExtension                        0x000000010aef4430 +[NSObject(MJKeyValue) mj_objectWithKeyValues:cont
图片:684E5537-4C28-4D78-A396-B7924B683832.png
级别: 新手上路
状态: 连续签到 - [2天]
UID: 239425
精华: 0
发帖: 21
可可豆: 97 CB
威望: 86 点
在线时间: 211(时)
注册时间: 2013-08-26
最后登录: 2017-10-17
1 楼:  发表于: 2017-09-29 16:05    发自: Web Page
没人知道吗??/
级别: 新手上路
UID: 568972
精华: 0
发帖: 4
可可豆: 4 CB
威望: 4 点
在线时间: 58(时)
注册时间: 2016-06-17
最后登录: 2017-10-11
2 楼:  发表于: 2017-10-10 17:48    发自: Web Page
你现在知道了什么原因不呢?我也遇到了这个问题
级别: 新手上路
状态: 连续签到 - [2天]
UID: 239425
精华: 0
发帖: 21
可可豆: 97 CB
威望: 86 点
在线时间: 211(时)
注册时间: 2013-08-26
最后登录: 2017-10-17
3 楼:  发表于: 2017-10-12 09:02    发自: Web Page
回 2楼(quyuanpeng) 的帖子
不知道呀!没知道解决方法 我又给回到了 swift 3.2 版本 打的包
级别: 侠客
UID: 379256
精华: 0
发帖: 86
可可豆: 95 CB
威望: 95 点
在线时间: 291(时)
注册时间: 2014-09-25
最后登录: 2017-10-18
4 楼:  发表于: 2017-10-12 17:48    发自: Web Page
是不是之前用swift3编译好的库xcode9不识别,试试用swift4重新编译。swift每次大更新,ABI都会变,我用carthage的现在项目还有错误,但是仍然能编译。
级别: 新手上路
状态: 连续签到 - [2天]
UID: 239425
精华: 0
发帖: 21
可可豆: 97 CB
威望: 86 点
在线时间: 211(时)
注册时间: 2013-08-26
最后登录: 2017-10-17
5 楼:  发表于: 2017-10-13 08:40    发自: Web Page
回 4楼(z3828938) 的帖子
我这边的库都是用swift4重新编译过了! 还是有警告提示,但是运行没什么问题
级别: 侠客
UID: 379256
精华: 0
发帖: 86
可可豆: 95 CB
威望: 95 点
在线时间: 291(时)
注册时间: 2014-09-25
最后登录: 2017-10-18
6 楼:  发表于: 2017-10-13 11:30    发自: Web Page
重新导入那几个库试一试。
级别: 新手上路
状态: 连续签到 - [2天]
UID: 239425
精华: 0
发帖: 21
可可豆: 97 CB
威望: 86 点
在线时间: 211(时)
注册时间: 2013-08-26
最后登录: 2017-10-17
7 楼:  发表于: 2017-10-13 15:42    发自: Web Page
回 6楼(z3828938) 的帖子
我这边问题解决了! 混编采用的MJExtension 进行映射出现了@obj的相关问题,今天换了HandyJSON库,问题算是完美解决了
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部