网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月21日漏签0天
swift吧 关注:40,489贴子:75,405
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 4回复贴,共1页
<<返回swift吧
>0< 加载中...

swift如何把继承的oc接口参数声明为"?"(不强制解包)

  • 只看楼主
  • 收藏

  • 回复
  • 是狸愁
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
oc接口原型:
- (void)onGetResult:(Searcher*)searcher result:(SearchResult*) searchResult errorCode:(SearchErrorCode) errorcode;
swift继承的接口定义:
func onGetSearchResult(searcher:Searcher!, result:SearchResult!, errorCode:SearchErrorCode!)
发生的问题:
下层库调用swift的onGetSearchResult时发生“NSInvalidArgumentException”
原因提示:"[xxxx.viewcontroller onGetSearchResult:result:errorCode:]:unrecognized selector sent to instance 0x7f98e1c7a1f0"
调试:
用oc代码测试,发现result参数会传入nil,感觉有可能是导致异常的原因,因为swift函数的对应参数指定为“!”了
需求:
能不能不修改oc的库接口原型,解决这个问题?我试了直接把对应参数声明为“?”,编不过
谢谢


  • 是狸愁
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
自己顶


2026-01-21 08:31:26
广告
不感兴趣
开通SVIP免广告
  • 是狸愁
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
根据进一步调试发现“errorCode:(SearchErrorCode) errorcode;”存在问题
测试方法是修改OC的接口原型及其调用,逐个参数排查


  • xiaosagegege1
  • 知名人士
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
好像是可以用nullable什么的。。。具体不太清楚。。。
http://tech.resgain.com/detail/7562ad732ef2680e7ba9300b634dd183.html


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回swift吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示