-[NSCFNumber dataUsingEncoding:]: unrecognized selector sent to instance
错误消息是:我试图调用一个方法
dataUsingEncoding:
(Objective-C版本一),即Swift
data(using:)
在
NSNumber
对象我不能,我崩溃了。
这意味着在某个时候,你认为你在使用
String
对象,而实际上它是
Number
一个(或转换为
数字
来自
Int
)。
multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
你认为
value
响应
数据(使用:)
。
事实上,应该更多
(value as String)
。
管理更多案例将是测试
价值
。如果是字符串对象,请使用
数据(使用:)
,如果它已经是
Data
对象简单放置
价值
。
在伪代码中:
let valueToSet;
if value is a String Object {
valueToSet = (value as String).data(using:.utf8)
} else if value is a Data Object {
valueToSet = value
} else if value is a Number Object {
valueToSet = String(initWithNumber:value).data(using:.utf8)
} else ... ?
multipartFormData.append(valueToSet, withName: key)
您还可以写:
let parameters: Parameters = [
"userID": userID,
"acToken": acToken ?? ""
]
因此,在对错误进行了所有这些解释之后:
userID
不是字符串或
acToken
不是字符串而是
内景
。根据名字,我倾向于这样说
用户ID
是一个
内景
。