我目前正在开发一个执行以下操作的单一视图应用:
我的大部分工作都在工作,但它更加沉浸在viewDidLoad
中 - 我正在努力寻找组织这样的事情的最好方法。我会将其分解为不同的方法,例如:
还是会比这更糟糕? (是的,我确定这一切都取决于细节)。我会在视图上显示8-10个不同的统计数据。
像
这样的事情viewDidLoad
我是否抓住用户位置或先在viewDidAppear上执行此操作只是寻找某种类型的一般最佳实践,试图扫描一些项目,但没有什么是我想要的。
编辑:以下是我返回的数据示例 - https://gist.github.com/ryancoughlin/8043604
有什么想法吗?
由于
答案 0 :(得分:1)
这几乎是偏好和风格的问题,但你可以通过将某些部分分成他们自己的类来以多种方式简化你的逻辑,例如:
如果不直接查看代码,很难提供更好的建议,但这应该会为您提供一些如何简化操作的建议。
编辑:一些代码示例如何将反序列化和数据处理分成自定义对象:
- (id)initWithJSON:(NSDictionary *)JSON
{
self = [super init];
if (self) {
self.gender = [JSON objectForKey:@"gender"];
self.email = [JSON objectForKey:@"email"];
self.firstName = [JSON objectForKey:@"first_name"];
self.lastName = [JSON objectForKey:@"last_name"];
self.personId = [[JSON objectForKey:@"person_id"] integerValue];
}
return self;
}
然后,您只需创建一个包含如下数据的对象:
Person *person = [[Person alloc] initWithJSON:JSON];
只需以更干净的方式访问您需要的任何数据:
self.myLabel.text = [NSString stringWithFormat:@"Name: %@", person.firstName];
答案 1 :(得分:0)
听起来你有一个Massive View Controller,这是一件坏事。尝试重新组织你的代码,这样你就有了一个胖模型和一个瘦的控制器。控制器应仅负责创建和刷新视图,引导模型以及基于用户交互更新模型。一些可能的模型对象:
您的模型应包含该应用的所有业务逻辑。