对于像C#或Java这样的语言的泛型,你可以有一个工厂根据给定的类型返回一个结果?例如,你可以告诉工厂的方法返回:Objective-C - 工厂返回给定的类类型?
Book
List<Book>
Door
List<Door>
是否有可能与objective-c实现相同的目的? 我可以通过某种方式告诉generateObjects
方法返回给我一些书吗?
[self getDataFromWeb:@"SOME_URL" andReturnResultWithType:[Book class]];
// What about an array of Books?
- (id)getDataFromWeb:(NSString*)url andReturnResultWithType:(Class)class
{
// Convert JSON and return result
// Mapping conversion is a class method under each contract (Book, Door, etc)
}
比方说,这是我的数据的一个合同
@interface Book : JSONContract
@end
@implementation Book
+ (NSDictionary *)dataMapping
{
// returns an NSDictionary with key values
// key values define how JSON is converted to Objects
}
@end
编辑:
修改的例子更清晰
你真的想要做点什么吗?或者这只是一个关于语言特性的问题?因为如果你想转换JSON,为此需要大量的第三方(现在是本机)库,而字符串数组并不是最好的解决方案。 – jrturton 2012-03-28 05:38:43
是否要将JSON中的所有'NSNumbers'转换为'NSStrings'? – Costique 2012-03-28 05:39:15
返回值是第一组()。 – CodaFi 2012-03-28 05:39:43