【发布时间】:2016-01-22 21:08:22
【问题描述】:
我遇到了一个非常奇怪的问题,希望有人能解释一下。我在类级别有一个属性,然后我将其传递给另一个类中的方法,在传递属性时等于我期望的值,但是一旦传递到方法中,值就会变为 0?发生这种情况没有合乎逻辑的理由。请参阅下面的屏幕截图了解更多上下文。
我期待听到您的建议。
编辑:根据要求,代码如下:
Networking.updateExistingEntry(RegistrationDataManager.get.currentRegistrationModel(), entryId: entryId) { (success) -> Void in
print(success)
}
class func updateExistingEntry(registrationModel: RegistrationModel, entryId: Int, completion:(success: Bool) -> Void) {
Alamofire.request(.PUT, Routing.Entries().URLByAppendingPathComponent("/\(entryId)"), parameters: registrationModel.map(), encoding: .JSON, headers: ["X-SessionToken":Settings.getSessionToken()!]).validate().responseJSON { (request, response, result) -> Void in
completion(success: result.isSuccess)
}
}
【问题讨论】:
-
请提供实际代码,而不是截图,它们很难阅读。
-
如何调用
updateExistingEntry,可以分享更多代码吗? -
如何得出值变为0的结论?通过在调试器中检查它的值,或者说,在执行期间将它的值打印到控制台?我问的原因是我看到了一些非常奇怪的情况,当我在调试期间观察到的值并不是我直接打印出来时观察到的值。
-
感谢 Anton,然后该方法使用 entryId 值进行网络调用,我可以从后端看到传入了 0。
-
仅仅因为你的代码需要更少的行并不意味着它在任何方面都更好。
标签: ios swift methods parameter-passing