對於像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