鉴于......
@interface Hog : NSObject { NSUInteger one, two, three; }
@property (strong, nonatomic) NSString *four, *five, *six;
-(void) seven;
@end
@implementation Hog
static CGFloat f, ff, fff;
- (NSString*) six { return _four = _five = _six = @"sexy"; }
- (void) seven { one = two = three = 33;
f = ff = fff = 6.66;
SEL sevenSelect = @selector(seven);
NSLog(@" %ld, %0.2f, %@, %@",
three, fff, self.six, NSStringFromSelector(sevenSelect)); }
@end
int main(int argc,char *argv[]){ Hog *u = Hog.new; [u seven];}
Output: 33, 6.66, sexy, seven
然后..为什么不可能宣布
-(void)seven, eight, nine;
等?有什么不同? objc-c
是否仅仅处理IMP
,或其他任何内容,与其他任何变量,块等相同?无论如何,为什么还要打扰原型呢?特别是,为什么要在类扩展中烦恼,而你只是直接在下面编写方法。这似乎只是错误和不必要的重复的另一个机会,不是吗?我知道我错了,但我要求接受教育,所以请继续。
答案 0 :(得分:2)
方法声明在语法上与变量声明不同。它们具有不同的语法,只能出现在特定的上下文中。
是否可以修改Objective-C的语法以允许用逗号分隔多个变量声明?是的,它会 - 但它需要比你想象的更大的变化,因为声明在包含参数时会变得更加复杂。而进行重大的语法更改只是为了让人们编写不太可读的声明。实际上没有任何好处。