Я хочу получить доступ к переменной экземпляра из класса, но, похоже, она не работает:
ClassA.h:
#import <Foundation/Foundation.h>
@interface ClassA: NSObject
@property int foo;
-(int) foo;
-(void) setFoo: (int) f;
@end
ClassA.m:
#import "ClassA.h"
@implementation ClassA
{
int foo;
}
-(int) foo
{
return foo;
}
-(void) setFoo: (int) f
{
foo = f;
}
@end
CategoryA.h:
#import "ClassA.h"
@interface ClassA (CategoryA)
-(void) print;
@end
CategoryA.m:
#import "CategoryA.h"
@implementation ClassA (CategoryA)
-(void) print
{
NSLog(@"Foo: %i", foo); //Use of undeclared variable 'foo'; did you mean 'for'?
}
@end
main.m
#import <Foundation/Foundation.h>
#import "ClassA.h"
#import "CategoryA.h"
int main (int argc, const char * argv[])
{
@autoreleasepool
{
ClassA *a = [[ClassA alloc] init];
[a setFoo: 10];
[a print];
}
return 0;
}
Я довольно новичок в Objective-C, поэтому я мог просто что-то пропустить.
Я знаю, что могу просто синтезировать foo, но это приводит к той же ошибке.
Проект можно скачать здесь: http://cl.ly/DL4s