gpt4 book ai didi

objective-c - 初始化模型对象时返回错误的最佳方法?

转载 作者:行者123 更新时间:2023-11-28 20:35:02 24 4
gpt4 key购买 nike

我有一个代表三角形的模型对象。有一些 init 方法采用不同的已知参数组合。然后它求解剩余的值(边长和角度)。目前,如果给定参数为 nil 或超出此三角形类型的适当范围,我的初始化程序将返回 nil。然而,为了向用户提供正确的反馈, Controller 对象还必须检查不正确的输入值,例如角度 > 90 度等。这对我来说很糟糕,因为这些规则应该只在模型中定义一次。所以我的想法是有一个 NSError 对象,它被设置为 Controller 应该向用户显示的字符串。我只是不确定将其传达给 Controller 的最佳方式。如果发生错误,我的 init 方法是否应该返回此 NSError 而不是 Triangle 实例?这似乎是错误的。或者我是否将指向 NSError 对象的指针作为参数传递给 init,并在发生错误时填充它?如果我这样做,我是否仍然从三角形对象的初始化中返回 nil,因为它不可用,或者我只是部分初始化三角形并返回它?

最佳答案

您应该遵循其他 Cocoa 对象使用的相同约定,如 Apple 的 Error Handling Programming Guide 中所述。 :

  • 添加一个参数,将 NSError** 作为方法的最后一个参数。
  • 出现错误时,如果该参数不是NULL,则用NSError 对象填充它并返回nil
  • init 方法的情况下,您还应该在返回 nil 之前[self release](除非您使用的是 ARC) .

关于objective-c - 初始化模型对象时返回错误的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10875200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com