0
#import <Foundation/NSArray.h>
#import <Foundation/NSString.h>
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSEnumerator.h>
#import <stdio.h>
void print(NSArray *array) {
NSEnumerator *enumerator = [array objectEnumerator];
id obj;
while (obj = [enumerator nextObject]) {
printf("%s\n", [[obj description] cString]);
}
}
int main(int argc, const char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSArray *arr = [[NSArray alloc] initWithObjects:
@"Me", @"Myself", @"I", nil];
NSMutableArray *mutable = [[NSMutableArray alloc] init];
// enumerate over items
printf("----static array\n");
print(arr);
// add stuff
[mutable addObject: @"One"];
[mutable addObject: @"Two"];
[mutable addObjectsFromArray: arr];
[mutable addObject: @"Three"];
// print em
printf("----mutable array\n");
print(mutable);
// sort then print
printf("----sorted mutable array\n");
[mutable sortUsingSelector: @selector(caseInsensitiveCompare:)];
print(mutable);
// free memory
[arr release];
[mutable release];
[pool release];
return 0;
}
該程序在windows中使用oscv0.1.4進行編譯。 它給出了一個錯誤如下所示目標c上的解析錯誤
Error: Parse error on line 6:
...import <stdio.h>
void print(NSArray
---------------------^
Expecting 'INTERFACE', 'IMPLEMENTATION', 'PROTOCOL', 'IMPORT', 'CLASS', 'DEFINE', 'EOF'
現在我得到下面示出的程序的一個以上的錯誤(這是另一個程序)
#import "Forwarder.h"
#import "Recipient.h"
int main(void)
{
Forwarder *forwarder = [Forwarder new];
Recipient *recipient = [Recipient new];
[forwarder setRecipient:recipient]; //Set the recipient.
[forwarder hello];
[recipient release];
[forwarder release];
return 0;
}
誤差是
Error: Parse error on line 3:
...Recipient : Object
- (id)hello;
@end#i
----------------------^
Expecting '<', '{'
我從來沒有聽說過oscv(並且我沒有看到有關快速谷歌搜索的相關內容);你有沒有試過像GCC這樣的編譯器? oscv是否有選擇向您顯示預處理的源文件(相當於GCC的'-E'選項)? –
通過此鏈接http://code.google.com/p/oscompiler/downloads/list –
我編譯並運行這個編譯器的另一個程序。沒關係。 –