【问题标题】:Int parameter changes to 0 when passing into a method传入方法时 int 参数变为 0
【发布时间】: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


【解决方案1】:

感谢各位的建议,我最终运行了与调试器(独立)分离的应用程序,并使用警报视图向我“打印”entryId 的值;这是正确的!看来这是一个xcode错误。重新安装 xcode 后一切正常。

【讨论】:

    猜你喜欢
    • 2018-12-16
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    相关资源
    最近更新 更多