2

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

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

问题:配置文件中的一些值是字符串,另一些是整数甚至字典。如您所见,我在此示例中将返回类型留空,因为我不知道该写什么。有什么方法可以让函数返回不同类型的数据,如果可以,我该如何声明?

非常感谢!

4

2 回答 2

5

最安全的是为您支持的每种类型提供不同的方法:

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

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

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

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

于 2010-07-17T11:00:10.680 回答
1

利用 Objective-C 的id动态类型

- (id) getValueforKey:(NSString *)key {
     some magic here....
     return value;
}
于 2010-07-17T11:01:19.080 回答