ios - 访问 obj 作为属性与方法参数(样式首选项)

标签 ios objective-c

当谈到从同一类中的不同方法访问对象时,据我了解,有两种方法可以做到。考虑到我确实 想要保存一个指向该对象的属性指针,哪种方法更好?我一直在考虑这个问题,想知道是否有偏好共识。

#1:

NSArray *array = ... // Get array from somewhere
self.myArray = array;

[self doSomethingToMyArray];

这个方法不带参数,通过self通过自己的属性访问数组

- (void)doSomethingToMyArray
{
// Do stuff with/to the array via self.myArray
[self.myArray ...];
}

对比#2:

NSArray *array = ... // Get array from somewhere
self.myArray = array;

[self doSomething:array];

这个方法接受一个数组并通过它自己的方法参数访问这个数组

- (void)doSomething:(NSArray *)array
{
// Do stuff with/to the array via method parameter "array"
[array ...];
}

最佳答案

我认为这主要取决于 doSomethingToMyArray 的作用以及调用它的人。

相当明显的评论:

  • 如果要对多个数组执行此操作,则需要使用参数;
  • 如果你所做的实际上在逻辑上更多地与数组有关而不是与你的类有关(例如,你已经实现了数组顺序的随机化)那么它最好作为 NSArray 上的一个类别 而不是在该类中的任何地方;
  • 如果子类有任何可能想要重新定义获取数组的方式,那么您将需要在某处调用 getter;
  • 如果子类或外部参与者应该能够在流程中的任何其他地方进行调解,则类似的问题也适用。

除了这些顾虑之外,我们中的许多人还是更喜欢这些东西无论如何都能发挥作用 — 请注意,您是在对数组 做一些事情,而不是数组,在这种情况下,您会更倾向于 self.myArray = [self processedFormOf:array](或 self.myArray = [array arrayByDoingSomething]; 如果类别提示说得通)。

所以,嗯,我认为没有明确的答案。

关于ios - 访问 obj 作为属性与方法参数(样式首选项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18320941/

相关文章:

iPhone 高级表格 View 单元示例

iOS - 仅将 UIView 的一部分保存为 PNG

ios - 项目在新的 XCode 6 中运行后出现 144 次致命故障

ios - 具有默认 nil 值的 UIDatePicker - iOS

iOS - 检测 UITableViewCell 被移出可见 View ?

ios - 在长按 uiTableView IOS 上更改单元格的选择

ios - 在子类中添加到父类(super class)的结构

objective-c - 数据密集型 View 的加载屏幕

ios - 尝试构建开源 Signal iOS 应用程序并连接到我自己的服务器

ios - UISlider 栏以编程方式使用自动布局消失