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

Rob*_*bin 2 xcode cocoa-touch objective-c return-type

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

- () getValueforKey:(NSString *)key {
     some magic here....
     return value;
}
Run Code Online (Sandbox Code Playgroud)

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

非常感谢!

Mar*_*tos 5

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

- (NSString *)stringForKey:(NSString *)key;
- (int)intForKey:(NSString *)key;
- (float)floatForKey:(NSString *)key;
- (NSDictionary *)dictionaryForKey:(NSString *)key;
...
Run Code Online (Sandbox Code Playgroud)

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

- (id)objectForKey:(NSString *)key;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,你会回来NSString *,NSNumber *,NSDictionary *,等.