如何在Windows中编译Objective-C代码以成功执行代码?

如何在Windows中编译Objective-C代码以成功执行代码?,objective-c,windows,windows-xp,Objective C,Windows,Windows Xp,因此,根据本文的说明,我从网站下载了gnustepwindows安装程序 然后,我按照以下顺序安装了稳定版本: GNUstep MSYS System GNUstep Core GNUstep Devel 然后我将代码写在下面: #import <Foundation/Foundation.h> int main(int argc, const char *argv[]){ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]

因此,根据本文的说明,我从网站下载了gnustepwindows安装程序

然后,我按照以下顺序安装了稳定版本:

GNUstep MSYS System
GNUstep Core
GNUstep Devel
然后我将代码写在下面:

#import <Foundation/Foundation.h>

int main(int argc, const char *argv[]){

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSArray *funnyWords = @[@"Schadenfreude", @"Portmanteau", @"Penultimate"];

for (NSString *word in funnyWords) {
  NSLog(@"%@ is a funny word", word);
}

[pool drain];
return 0;
}
虽然这在我编写的其他代码中是成功的,但这次它给了我以下错误:

hello.m: In function 'main':
hello.m:7:23: error: stray '@' in program
hello.m:7:41: warning: left-hand operand of comma expression has no effect [-Wun
used-value]
hello.m:7:57: warning: left-hand operand of comma expression has no effect [-Wun
used-value]
hello.m:7:73: error: expected ':' before ']' token
我相信第一个错误(“@”)可能是由于一个较旧的编译器造成的,但我不知道其他错误。我查找了错误,但没有一个解决方案与我的情况相关。有人能帮助Windows Objective-C编译编码器吗?

这是:

在文档中查看新语法的其他示例,新语法是为字典和数字文本定义的

同样的旧语法是

NSArray *funnyWords = [NSArray arrayWithObjects:@"Schadenfreude", @"Portmanteau", @"Penultimate", nil];
请注意结尾处的
nil
,在那里添加它对于旧API知道何时停止非常重要

关于逗号运算符的其余错误是由于对新语法的相同“误解”造成的。

这是:

在文档中查看新语法的其他示例,新语法是为字典和数字文本定义的

同样的旧语法是

NSArray *funnyWords = [NSArray arrayWithObjects:@"Schadenfreude", @"Portmanteau", @"Penultimate", nil];
请注意结尾处的
nil
,在那里添加它对于旧API知道何时停止非常重要


关于逗号运算符的其余错误是由于对新语法的相同“误解”造成的。

Nice,这很好!我想Windows编译器不支持新语法?@NYCTechEngineer不,我认为GNU还没有掌握新语法(不过我不确定,因为我只在Mac上使用Objective C)。另一件需要注意的事情是用于访问数组的方括号语法:您需要将
funnyWords[i]
替换为
[funnyWords objectAtIndex:i]
。您当然可以使用clang,并使所有这些语法在FreeBSD或GNU/Linux等系统上正常工作。我不知道Windows上的叮当声的状态。但是现在GNU/Linux发行版很容易安装,你甚至可以使用LiveCD。很好,效果很好!我想Windows编译器不支持新语法?@NYCTechEngineer不,我认为GNU还没有掌握新语法(不过我不确定,因为我只在Mac上使用Objective C)。另一件需要注意的事情是用于访问数组的方括号语法:您需要将
funnyWords[i]
替换为
[funnyWords objectAtIndex:i]
。您当然可以使用clang,并使所有这些语法在FreeBSD或GNU/Linux等系统上正常工作。我不知道Windows上的叮当声的状态。但是现在GNU/Linux发行版很容易安装,你甚至可以使用LiveCD。
NSArray *funnyWords = [NSArray arrayWithObjects:@"Schadenfreude", @"Portmanteau", @"Penultimate", nil];