下面是Apple的"用Objective C编程"文档,链接为:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithObjects/WorkingwithObjects.html#//apple_ref/doc/uid/TP40011210-CH4-SW1
无论如何,我已经到了它要求调用sayHello方法的地步。
"使用alloc和init创建一个新的XYZPerson实例,然后调用sayHello方法。"
#import <Foundation/Foundation.h>
#import "XYZPerson.h"
int main(int argc, const char * argv[]);
XYZPerson *firstPerson = [[XYZPerson alloc] init]; //Initializer element is not a lime-time constant
[firstPerson sayHello]; //No Visible @interface for 'XYZPerson' delcares the selector 'sayHello'
@implementation XYZPerson
- (void)sayHello {
[self saySomething:@"Hello, World"];
}
- (void)saySomething: (NSString *)greeting {
NSLog(@"%@", greeting);
}
@end
我相信我对苹果公司如何解释这项工作有误解,或者根本不知道。
希望苹果公司有这些例子让我们复习一下。
您需要将代码放入主函数中。现在,代码就在文件中,在任何函数之外。应该是:
int main(int argc, const char * argv[]) {
XYZPerson *firstPerson = [[XYZPerson alloc] init];
[firstPerson sayHello];
}
此外,根据文档,您应该有一个单独的main.m
文件,其中包含main
函数。
As只能访问在.h文件中用类对象声明的公共函数。
请在.h文件中声明该函数,它将解决您的问题