【发布时间】:2014-09-20 12:26:11
【问题描述】:
我的应用中有两个视图。在第一个视图中,我有一个表格视图,它显示从 Internet 下载的数据。 FirstViewController 有获取数据和更新视图的方法:
- (void)viewDidLoad
{
// Create PlanGenerator
_planGenerator = [[PlanGenerator alloc] init]
[self loadPlan];
- (void)loadPlan
{
_plan = [_planGenerator getData]
// Updating the view
// Updating the table view
[self.tableView reloadData]
}
要从 Internet 下载数据,我有一个名为 PlanGenerator 的类。这个类有一个名为getData的实例方法,它返回一个NSArray。表格视图使用实例变量_plan(数组)在表格视图中显示数据。
在第二个视图(由SecondViewController 控制)中,您可以对下载的内容进行一些调整。为了告诉这些更改PlanGenerator,我使用了class properties 的概念。现在,当我在第二个视图中更改某些内容时(实际上它只是一个参数),我想从 FirstViewController 调用方法 loadPlan。
我的第一个想法是创建一个类方法,但随后我必须为该方法使用的每个变量创建“类属性”。
有更简单的方法吗?
【问题讨论】:
-
一些事情......当你说“第二个视图”时,你真的是指第二个视图控制器吗? (有一个大的区别。)你知道
alloc/init创建了一个new对象,它没有你提供给其他PlanGenerator的信息其他一些代码? -
是的,我知道这是一个很大的区别,但我认为很明显任何 View 也有一个 ViewController。无论如何,我在我的问题中添加了这一点。但我真的不明白你对问题的第二部分的意思。我知道
PlanGenerator的每个新对象都是不同的,但是getData返回的数据对于每个实例都是相同的。 -
有些人在一个控制器中有多个视图,并在必要时隐藏/显示它们。 (耸耸肩)我看到你已经改变了你的问题,所以
PlanGenerator不是一个局部变量。这有助于我评论的第二部分;我说的是你将如何在方法结束时超出范围的事情调用loadPlan。 -
好的,现在我明白了,是的 _planGenerator 和 _plan (array) 是实例变量。
标签: ios objective-c class methods