我喜欢在异构UITableView as suggested by Matt Gallagher中抽象CellControllers的想法。然而,在典型的推详细视图行为的情况下,我发现自己创造,只有详细视图控制器的init
方法不同的LinkRowCellController
几乎相同的变种 - init:
,initWithBook:
,initWithMagazine:
,initWithHelpURLString:andTopic:
等如何统一处理仅通过初始化属性不同的类对象?
好像我可以改变指定初始化采取属性键和初始参数的字典,并有LinkRowCellController
initWithProperties:
方法设置使用上通过了对setValueForKey:
属性。
这种解决方案似乎给了编译时间检查init
的论点。 Objective-C中针对其他均匀代码中异构inits的最佳实践是什么?
UPDATE:
基于jlehr的回答下面我实现与initWithDictionary:(NSDictionary *)dict
,一切都继承了单一的方法从超:
- (id)initWithDictionary:(NSDictionary *)dict
{
if ((self = [super init]) != nil)
{
for (id key in dict) {
[self setValue:[dict objectForKey:key] forKey:key];
}
}
return self;
}
它看起来很干净。我已经开始讨论一个不同的粘性问题集,但是当我回来时让我试试这个。 – iPhoneDollaraire 2010-03-06 02:26:37
我试了一下,它像一个冠军! (太多了,以至于我很惊讶这不是NSObject的标准方法?) 我正在使用它来设置运行时的值,因此我不确定plist方法是否可以帮助我这次。 – iPhoneDollaraire 2010-03-07 22:03:01