Too many arguments to function call, expected 0, have 2

1. 开启objc_msgSend提示

在使用objc_msgSend时没有参数提示,并提示错误 ** Too many arguments to function call, expected 0, have 2 **

在Xcode6之前运用objc_msgSend,是有参数提示的。

但是从Xcode6之后,苹果不推荐我们使用runtime,所以就取消了参数提示功能。

解决办法: 可以通过对Xcode进行配置进行更改, target > Build Settings > Enable Strict Checking of objc_msgSend Calls 修改为 No 即可

2.关于Date()时差问题, NSDate()也相同

Date() 或者 NSDate() 获取的对象是0时区的时间, 当使用DateFormatter转换时,会自动处理时区问题; 使用 timeinterval 也会自动转换.

let date = Date()     // 2020-06-23 06:35:04 +0000
let interval = date.timeIntervalSince1970; // 1592894104.246064 => 2020-6-23 14:35:04 CST
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateStr = formatter.string(from: date)    // 2020-06-23 14:35:04
print("date = \(date), interval = \(interval), dateStr = \(dateStr)")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。