首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SWIFT3.2-编译器不允许我使用Darwin.kevent全局函数

SWIFT3.2-编译器不允许我使用Darwin.kevent全局函数
EN

Stack Overflow用户
提问于 2017-09-18 21:22:37
回答 1查看 110关注 0票数 2

这在Swift 3.1中是可行的,但是当我切换到Xcode 9时,它就停止了编译。下面是一个示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let kq: Int32 = 0
let changelist: UnsafePointer<kevent>! = nil
let nchanges: Int32 = 0
let eventlist: UnsafeMutablePointer<kevent>! = nil
let nevents: Int32 = 0
let timeout: UnsafePointer<timespec>! = nil
Darwin.kevent(kq, changelist, nchanges, eventlist, nevents, timeout)

错误是

错误:缺少参数标签‘ident:filter:标志:fflag:data:udata:’in call

造成这些问题的原因似乎是,Darwin模块同时导出了一个相同名称的函数-- kevent,编译器没有选择全局函数,而是希望我添加结构初始化器标签,因为参数列表不匹配,这对我不起作用。

kevent结构初始化器如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public init(ident: UInt, filter: Int16, flags: UInt16, fflags: UInt32, data: Int, udata: UnsafeMutableRawPointer!)

我甚至尝试将所有参数声明为局部变量(如样例代码中的那样),以确保没有类型推断会使函数调用不正确,这可能会导致编译器认为我想使用结构。不走运。

有人知道这个“超载”问题的解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-18 21:52:16

我不能告诉您为什么完全限定的函数名不使用Swift 3.2编译,但是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kevent(kq, changelist, nchanges, eventlist, nevents, timeout)

没有达尔文前缀,编译就没有问题(用Xcode 9 GM、Swift 3.2和Swift 4进行测试)。

我可以确认

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Darwin.kevent(kq, changelist, nchanges, eventlist, nevents, timeout)

使用Swift 3.1 (Xcode 8.3.3)编译,因此您可能需要提交错误报告。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46292405

复制
相关文章
为什么不允许使用 Java 静态构造函数?
不允许使用 Java 静态构造函数,但是为什么呢?在深入探讨不允许使用静态构造函数的原因之前,让我们看看如果要使 构造函数静态化 会发生什么。
淡定的蜗牛
2019/10/28
3.1K0
ioctl函数_通过ioctl函数设置IP不允许修改
一、什么是ioctl   ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。   ioctl函数是文件结构中的一个属性分量,就是说如果你的驱动程序提供了对ioctl的支持,用户就可以在用户程序中使用ioctl函数来控制设备的I/O通道。   用户程序所作的只是通过命令码(cmd)告诉驱动程序它想做什么,至于怎么解释这些命令和怎么实现这些命令,这都是驱动程序要做的事情。
全栈程序员站长
2022/11/19
1.4K0
ioctl函数_通过ioctl函数设置IP不允许修改
vue挂载全局函数
要是生活送了你一个柠檬,那你应该再要点盐与龙蛇兰。 首先在src下面建个utils包,创建个index.js 然后写上我们的全局函数 //获取当前传入参数类型 export function getObjType(obj) { var toString = Object.prototype.toString var map = { '[object Boolean]': 'boolean', '[object Number]': 'number',
阿超
2022/08/16
7990
vue挂载全局函数
静态函数和全局函数
全局函数不同文件下,也可以调用,通过extern关键字声明后 静态函数只能在当前文件下使用
大忽悠爱学习
2021/03/02
1K0
静态函数和全局函数
react 函数内部调用全局函数
错误信息 react TypeError: Cannot read property 'up' of undefined at 错误信息 react Unhandled Rejection (TypeError): Cannot read property 'setState' of undefined
wo.
2021/06/15
2.7K0
<Solidity学习系列四>使用编译器
Solidity存储库的一个构建目标是solc,solidity命令行编译器。 使用solc --help为您提供所有选项的解释。 编译器可以生成各种输出,范围从简单的二进制文件和汇编到抽象语法树(解析树),以估计gas使用情况。 如果您只想编译单个文件,则将其作为solc --bin sourceFile.sol运行,并打印二进制文件。 在部署合同之前,在编译时使用solc --optimize --bin sourceFile.sol来激活优化器。 如果你想获得solc的一些更高级的输出变体,最好告诉它使用solc -o outputDirectory --bin --ast --asm sourceFile.sol输出所有东西来分离文件。
Charlie_W
2018/10/19
1.4K0
[CodeIgniter4]-公共函数和全局常量
CodeIgniter 你可以在任何地方使用它们,并且不需要加载任何 类库或辅助函数。
landv
2020/03/05
3K0
浅议“全局变量”、“多线程”和“编译器陷阱”
今天偶然看到一段代码,也看到了作者对此的说明,觉得很有意思: public event EventHandler Started; protected virtual void OnStarted(
用户1177503
2018/02/27
8690
Rust 不允许C++方式的函数重载overloading
C++方式的函数重载,即同一个函数名以及多个不同的形参类型和个数(不包括返回值类型), 以Ad-hoc(临时,随时)过于灵活的方式来实现函数的重载!功能非常强大, 同时也是惹祸根源之一!
MikeLoveRust
2020/06/28
1K0
都2023年了,我不允许你还不懂NeRF
来源: 极市平台本文约2200字,建议阅读9分钟本文试图以最小背景知识补充、最少理解成本为前提介绍NeRF。 作者丨mathfinder@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/569843149 [ 导读 ]写这篇文章的动机是,一方面NeRF实在太重要了代表着计算机视觉、图像学结合的未来重要方向;另一方面NeRF对于计算机视觉背景的同学有一定的理解门槛,这篇文章试图以最小背景知识补充、最少理解成本为前提介绍NeRF。 NeRF,即Neural Radiance Fi
数据派THU
2023/02/23
2.2K0
都2023年了,我不允许你还不懂NeRF
Vue中如何定义全局函数
就是以一个特定模块来组织管理这些全局量,需要引用的地方导入该模块便好。 全局变量专用模块 Global.vue
李维亮
2021/07/08
1K0
从大厂不允许使用 SELECT * 说开去
作为开发人员数据库查询语句我们经常用到,但是你是否想过为什么大厂都会强制开发人员禁止使用 SELECT * 语句?你一定会说因为效率低啊,多差除了一些无用的数据。如果是这么想的,那就继续听我来说。
喵叔
2020/10/29
1.1K0
去你的”用函数,不允许增加辅助列“!
经常看到有人出一些Excel的题,要求用公式解,然后注明一句:用函数,不允许增加辅助列!比如这种:
大海Power
2021/08/30
7410
我不允许还有人不知道SOLID原则
本文翻译自国外论坛 medium,原文地址:https://salithachathuranga94.medium.com/solid-principles-in-action-with-java-529d1c2b5f61
wayn
2023/08/28
2510
我不允许还有人不知道SOLID原则
为什么我坚持使用 JavaScript 函数声明
时光溯回到上世纪 90 年代晚期,在初次接触 JavaScript 时,老师教我们使用函数声明写下Hello World,它看上去是这样的······ function helloWorld() { return ‘Hello World!’; } 那时候,再没有比写出如下Hello World函数更酷的事儿了······ const helloWorld = () => 'Hello World!'; 这个函数表达式体现了 ES 2015 的最大亮点——箭头函数(Arrow function),精简
CSDN技术头条
2018/02/12
1.1K0
为什么我坚持使用 JavaScript 函数声明
ReplacingMergeTree得到史诗级加强,我不允许大家不知道
Long Long Ago,天地浑浊,ReplacingMergeTree出现了。
Nauu
2023/09/02
8090
ReplacingMergeTree得到史诗级加强,我不允许大家不知道
Java 中:不允许逻辑操作、运算操作放在方法块外面,编译器会进行优化
Java 中:不允许逻辑操作、运算操作放在方法块外面,编译器会进行优化!!! 代码: public class ProductLog { // 生产数据 // 用于存放待随机的电话号码 private List<String> phoneList = new ArrayList<>(); public static void main(String[] args) { } } 以上代码等价于:即编译对代码进行优化后的结果 public class Product
黑泽君
2019/03/19
4670
JS利用函数修改全局变量
现在博客系统的评论遇到一个问题,用户点击“最后一页”链接之后就自动调取最后一页的资料来显示。
SAP梦心
2022/05/10
5K0
Swift: 有用的标准库全局函数
全局函数 Global functions :无需特定类型范围就可以从任何地方访问的函数是一个古老的概念,在 C 和 Objective-C 等语言中很流行,但是在 Swift 中不建议使用,因为我们希望对它们进行很好的类型化和范围划分("swifty")。
韦弦zhy
2020/05/18
2.7K0
Swift: 有用的标准库全局函数
点击加载更多

相似问题

我的编译器不允许我使用getline

11

不允许从全局函数调用主机函数

12

使用.each()函数不允许我使用.on()函数

49

编译器不允许在C中使用exit()函数

13

编译器不允许我比较类型

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文