objective-c函数中的变量返回类型(使用Cocoa)

时间:2010-07-17 10:56:38

标签: objective-c cocoa-touch xcode return-type

我的objective-c app中有一个配置类,它读取带有配置数据的PLIST文件。然后,我希望能够通过单个函数读取任何键的值,如下所示:

- () getValueforKey:(NSString *)key {
     some magic here....
     return value;
}

问题:配置文件中的某些值是字符串,其他值是整数或甚至字典。正如你所看到的,我在这个例子中留下了返回类型的空白,因为我不知道在那里写什么。函数是否有任何方式可以返回不同类型的数据,如果有,我该如何声明?

非常感谢!

2 个答案:

答案 0 :(得分:5)

最安全的是为您支持的每种类型提供一种独特的方法:

- (NSString *)stringForKey:(NSString *)key;
- (int)intForKey:(NSString *)key;
- (float)floatForKey:(NSString *)key;
- (NSDictionary *)dictionaryForKey:(NSString *)key;
...

如果调用者想要一般地工作,你可以提供一个通用的:

- (id)objectForKey:(NSString *)key;

在这种情况下,您将返回NSString *NSNumber *NSDictionary *等。

答案 1 :(得分:1)

使用 id

来使用Objective-C的动态类型
- (id) getValueforKey:(NSString *)key {
     some magic here....
     return value;
}