我只是學習obj c。我使用從gnustep.org/experience/Windows.html下載的GNUStep(有3個安裝程序--MSYS系統,核心,開發)。客觀c字典枚舉與塊不能用gnustep gcc
運行下面的代碼:
#import <Foundation/Foundation.h>
int main (int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSDictionary *m_Dict =
[NSDictionary dictionaryWithObjectsAndKeys:
@"ABC", @"One",
@"DEF", @"Two",
@"GHI", @"Three",
nil ];
// Print all key-value pairs from the dictionary
[m_Dict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) {
NSLog(@"%@ => %@", key, obj);
}];
[pool drain];
return 0;
}
是否顯示錯誤:
$ gcc -o c c.m -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Li
``braries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString
c.m: In function 'main':
c.m:16:44: error: expected expression before '^' token
c.m:18:1: warning: 'NSDictionary' may not respond to '-enumerateKeysAndObjectsUs
ingBlock:' [enabled by default]
c.m:18:1: warning: (Messages without a matching method signature [enabled by def
ault]
c.m:18:1: warning: will be assumed to return 'id' and accept [enabled by default
]
c.m:18:1: warning: '...' as arguments.) [enabled by default]c
請建議我在做什麼錯。在這裏也搜索了Stackoverflow,但找不到太多幫助。
你正在使用什麼編譯器+運行庫? – 2013-04-07 03:15:46
你需要Clang。不要使用GCC。並且確保你安裝了正確的運行時版本,並且當你不知道你實際正在做什麼時,請使用GNUstep-make構建項目。 – 2013-04-07 05:46:26
我只是在學習obj c。我使用從http://www.gnustep.org/experience/Windows.html下載的GNUStep(有3個安裝程序--msys系統,core,devel)。 – user2253619 2013-04-07 08:31:57