У меня возникли проблемы с доступом к свойству int из другого класса. Я знаю, что этот вопрос задан довольно много раз, однако ни одно из решений, опубликованных в предыдущих вопросах, похоже, не работает. Мои знания в xcode являются базовыми, и я использую этот проект для развития своих навыков.Доступ к значениям int из другого класса
У меня есть два класса: HelloWorldLayer и ClassOne. Где ClassOne указывает значение int. Оба являются классами Cocos2d CCLayer (возможно, не лучшим классом, чтобы практиковать межклассовый доступ к значениям).
ClassOne.h
@interface ClassOne : CCLayer {
int ageClass;
}
@property (nonatomic, readwrite)int ageClass;
@end
ClassOne.m
@implementation ClassOne
@synthesize ageClass = _ageClass;
-(id)init{
if((self=[super init])){
_ageClass = 10;
}
return self;
}
@end
HelloWorldLayer.h
#import "ClassOne.h"
@interface HelloWorldLayer : CCLayer <...> {
ClassOne *agePointer;
}
@property (nonatomic,assign)ClassOne *agePointer;
+(CCScene*)scene;
@end
HelloWorldLayer.m
#import "HelloWorldLayer.h"
#import "AppDelegate.h"
#import "ClassOne.h"
@implementation HelloWorldLayer
@synthesize agePointer = _agePointer;
+(CCScene*)scene...
-(id)init{
if((self=[super init])){
_agePointer.ageClass = self;
NSLog(@"ClassOne int = %@",_agePointer);
}
return self;
}
...
@end
Выход Результат:
"ClassOne int = (null)"
or "0" if i use "%d" token and "int = x", where the line "int x =_agePointer.ageClass;"
is used.
В результате я после это для HelloWorldLayer NSLog для отображения "10", значение INT, определенный в ClassOne.
Любая мудрость и исправления в отношении моего использования языка очень ценятся.
что делает эту линию средств "_agePointer.ageClass = self;" ageClass - целое число, и вы пытаетесь назначить в нем объект. Я думаю, что он будет работать как: - (id) init { if ((self = [super init])) { _agePointer = [[ClassOne alloc] init]; NSLog (@ "ClassOne int =% d", _ agePointer.ageClass); } return self; } –
Я использовал этот вопрос в качестве руководства [link] (http://stackoverflow.com/questions/9371125/accessing-a-value-of-a-classs-variable-from-another-objective-c). У меня создалось впечатление, что эта строка присваивает значение «ageClass» «_agePointer». –
Это решило. Спасибо, Prateek, если вы опубликуете это как ответ, я его приму. –