Ios Swift/PayMill:将PMTransaction转换为NSObject
我正在一个Swift项目中使用 我可以成功创建交易,它们已成功注册到PayMill。创建事务后,我使用以下代码将事务数据传递到我的服务器: 变量Ios Swift/PayMill:将PMTransaction转换为NSObject,ios,swift,Ios,Swift,我正在一个Swift项目中使用 我可以成功创建交易,它们已成功注册到PayMill。创建事务后,我使用以下代码将事务数据传递到我的服务器: 变量transaction的类型为PMTransaction Alamofire给出了以下错误: 2015-02-05 14:56:44.434 MyApp[4070:727012] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Inv
transaction
的类型为PMTransaction
Alamofire给出了以下错误:
2015-02-05 14:56:44.434 MyApp[4070:727012] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (PMTransaction)'
如何将其转换为(例如)NSObject或任何其他数据类型,以便将数据正确发送到我的服务器
在将其传递给Alamofire之前,我尝试使用类型NSObject
声明dataObject
:
let dataObject:NSObject = transaction as NSObject
但这似乎对阿拉莫菲尔没有任何影响
为了进行测试,我尝试使用一个通用对象,通过Alamofire将其发布到服务器后,它成功地存储在我的数据库中,因此问题在于外部数据类型PMTransaction
非常感谢您的建议,如果需要,我很乐意发布更多信息。我找到了一种更为手动的方法来解决我的问题。见下文:
var dataObject = [
"id":"\(transaction.id)",
"description":"\(transaction.description)",
"amount":"\(transaction.amount)",
"origin_amount":"\(transaction.origin_amount)",
"currency":"\(transaction.currency)",
"status":"\(transaction.status)",
"livemode":"\(transaction.livemode)",
"created_at":"\(transaction.created_at)",
"updated_at":"\(transaction.updated_at)",
"response_code":"\(transaction.response_code)",
]
如果有人能想出更好的方法来转换PMTransaction
,请添加您的解决方案,我将接受您的回答
var dataObject = [
"id":"\(transaction.id)",
"description":"\(transaction.description)",
"amount":"\(transaction.amount)",
"origin_amount":"\(transaction.origin_amount)",
"currency":"\(transaction.currency)",
"status":"\(transaction.status)",
"livemode":"\(transaction.livemode)",
"created_at":"\(transaction.created_at)",
"updated_at":"\(transaction.updated_at)",
"response_code":"\(transaction.response_code)",
]