gpt4 book ai didi

ios - UIViewController子类策略

转载 作者:行者123 更新时间:2023-11-29 04:06:14 26 4
gpt4 key购买 nike

假设我有一个选项卡式应用程序,其中每个选项卡显示不同类别的相似数据(例如 Tab1:“猫图片”、Tab2:“狗图片”、Tab3:“马图片”等)。

每个选项卡的 View Controller 呈现相同的数据。唯一的区别是 vc 的 title 属性和获取数据的方法的参数。那么以下选项的优缺点是什么:

  • 创建一个具有(有限)分支的 ViewController master 每个类别的逻辑。

  • 创建 View Controller 不同类别类型的父类(super class)和几个子类。

编辑

因此,为了澄清“获取数据的方法的参数”:获取方法可能如下所示:

-(void)fetchDataForType:(NSString*)type {
if ([type isEqual:@"cat"])
// fetch cat pics
if ([type isEqual:@"dog"])
// fetch dog pics
...
}

最佳答案

就你而言,我什至不会子类化。创建一个具有您要更改的属性的类,并使用不同的属性值进行实例化。

粗略示例:

@interface ViewController : UIViewController
@property (retain, nonatomic) NSString *title;
- (void)getJSONWithParams:(NSDictionary *)params;
@end

实例:

ViewController *controller1 = [[ViewController alloc] init];
controller1.title = @"First";
NSDictionary *params1 = @{@"url":@"http://graph.facebook.com", @"query":@"q=somethingInFacebook"};
[self.navigationController pushViewController:controller1];
[controller1 getJSONWithParams:params1];

ViewController *controller2 = [[ViewController alloc] init];
controller2.title = @"Second";
NSDictionary *params2 = @{@"url":@"http://api.twitter,com", @"query":@"q=somethingInTwitter"};
[self.navigationController pushViewController:controller2];
[controller2 getJSONWithParams:params2];

关于ios - UIViewController子类策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15160529/

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