【发布时间】:2020-05-24 17:51:40
【问题描述】:
有谁知道为什么这段代码会遇到编译错误?我正在使用 clang 在 Catalina 上编译它。我发布了一个类似的问题here,但那是我尝试在 Linux 上使用 clang 进行编译的时候。我认为 getA 和 setA 是通过综合自动生成的。谢谢!
#import <Foundation/Foundation.h>
@interface A: NSObject
@property int a;
@end
@implementation A
{
int a;
}
@synthesize a;
@end
int main (int argc, char * argv[])
{
@autoreleasepool {
A *a = [[A alloc] init];
[a setA:99];
int v = [a getA];
NSLog (@" %d\n", v);
}
return 0;
}
编译:
$ clang -framework Foundation otest0.m -o hello
otest0.m:23:16: warning: instance method '-getA' not found (return type defaults
to 'id') [-Wobjc-method-access]
int v = [a getA];
^~~~
otest0.m:3:12: note: receiver is instance of class declared here
@interface A: NSObject
^
otest0.m:23:9: warning: incompatible pointer to integer conversion initializing
'int' with an expression of type 'id' [-Wint-conversion]
int v = [a getA];
^ ~~~~~~~~
2 warnings generated.
【问题讨论】:
标签: objective-c clang