OGeek|极客世界-中国程序员成长平台

标题: iphone - 我可以声明一个带有未知类型参数的方法吗? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 19:51
标题: iphone - 我可以声明一个带有未知类型参数的方法吗?

我正在构建一堆函数,这些函数将使我的核心数据调用更好一些,而不是那么臃肿。

假设我有一个看起来像这样的方法:

- (NSArray*)retrieveDataFromNSString *) name whereNSString *) where isNSString *) is {

   NSPredicate *predicate = [NSPredicate predicateWithFormat"(%@ = '%@')", where, is];

   return [self retrieveDataFrom:name withPredicate:predicate];
}

然后有时我想做这样的事情(例如):

[self retrieveDataFrom"table" where"id" is:int 2];

而不是这个:

[self retrieveDataFrom"table" where"id" is"2"];

有没有办法让方法在不知道参数类型的情况下接受参数?



Best Answer-推荐答案


不直接。您可以将输入声明为 NSObject *,因此它可以采用 NSString *NSNumber *,但您仍然无法使用 NSNumber 的丑陋语法。

[self retrieveDataFrom"table" where"id" is:[NSNumber numberWithInt:2]];

不过,Clang Language Extensions 的形式即将推出更好的语法。 .

当这些着陆时,您可以改为这样写:

[self retrieveDataFrom"table" where"id" is:@2];

目前,LLVM 网站称这些将在 llvm 4.0 中。聪明的钱说这将在 Xcode 4.4 中,但我怀疑 Apple 是否感谢 LLVM 网站上的声明。

关于iphone - 我可以声明一个带有未知类型参数的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9813897/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4