我正在构建一堆函数,这些函数将使我的核心数据调用更好一些,而不是那么臃肿。
假设我有一个看起来像这样的方法:
- (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"];
有没有办法让方法在不知道参数类型的情况下接受参数?
不直接。您可以将输入声明为 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/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |