0
Matrix.h код:Xcode Objective-C SKNode свойство является нулевым после создания экземпляра
#import <Foundation/Foundation.h>
@interface Matrix : NSObject
+(id)matrix;
@property SKNode *window;
@end
Matrix.m Код:
#import "Matrix.h"
@implementation Matrix
+(id)matrix
{
Matrix *matrix;
matrix.window = [SKNode node];
if(matrix.window == NULL)
{
NSLog(@"matrix.window is NULL");
}
return matrix;
}
Код выше для объекта Matrix. В конструкторе он создает свойство SKNode и затем использует if-statement для проверки, является ли он нулевым.
После инстанцирования Матрицы объект журнал отладки:
2015-02-27 20:11:51.597
test[4165:415758] matrix.window is NULL
Когда код работает, если заявление всегда срабатывают. Может кто-нибудь объяснить, почему matrix.window является NULL, хотя я его создал?
'matrix' не выделялось ... Вы должны один создании экземпляра. –
Большое спасибо! Я изменил код: Matrix * matrix; to: Matrix * matrix = [Matrix alloc]; –
Не забудьте вызвать 'init', идиома для создания экземпляра -' [[Класс alloc] init] '. –