【发布时间】:2014-05-12 15:18:23
【问题描述】:
关于this source code@autoreleasepool 中的双花括号的用途是什么?
int main(int argc, const char * argv[]) {
@autoreleasepool {
{{
assert([EnumWith1ConstantSansExplicitValuesByLabel() count] == 1);
assert([[EnumWith1ConstantSansExplicitValuesByLabel() objectForKey:@"EnumWith1ConstantSansExplicitValues_Constant1"] isEqual:[NSNumber numberWithInt:0]]);
assert([EnumWith1ConstantSansExplicitValuesByValue() count] == 1);
assert([[EnumWith1ConstantSansExplicitValuesByValue() objectForKey:[NSNumber numberWithInt:0]] isEqual:@"EnumWith1ConstantSansExplicitValues_Constant1"]);
EnumWith1ConstantSansExplicitValues a = 0;
assert(EnumWith1ConstantSansExplicitValues_Constant1 == a);
assert([@"EnumWith1ConstantSansExplicitValues_Constant1" isEqualToString:EnumWith1ConstantSansExplicitValuesToString(a)]);
assert(EnumWith1ConstantSansExplicitValuesFromString(EnumWith1ConstantSansExplicitValuesToString(EnumWith1ConstantSansExplicitValues_Constant1), &a));
assert(EnumWith1ConstantSansExplicitValues_Constant1 == a);
a++;
assert([@"<unknown EnumWith1ConstantSansExplicitValues: 1>" isEqualToString:EnumWith1ConstantSansExplicitValuesToString(a)]);
assert(!EnumWith1ConstantSansExplicitValuesFromString(@"foo", &a));
}}
{{
assert([EnumWith1ConstantSansExplicitValuesTrailingCommaByLabel() count] == 1);
}}
...
printf("success\n");
return 0;
}
【问题讨论】:
-
这可能会有所帮助。 stackoverflow.com/questions/6251160/…
-
@User42 不,这不是声明结构。
-
回答这个问题:花括号是什么意思?然后回答这个问题:花括号内的花括号是什么意思?这是第一个答案的明显结果。 @autoreleasepool 与它无关。
-
这在技术上并没有错,理论上你剪掉了你想要的花括号,只要你关闭它们。
-
你应该问作者。我几乎可以肯定这些没有什么特别的意义,即他可能会使用它们,因为他可以。一种可能性是使用这些来标记他的测试用例。
标签: objective-c syntax