Too many arguments to function c
2020-06-17 本文已影响0人
Ocean_e553
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)")