2014-07-14 2 views
0

Я новичок в Obejctive-C, а также Mac. Я пытался научиться онлайн и написал этот простой кусок кода, но NSLog не работает для меня.Objective-C - Mac NSLog не работает

#import <Foundation/Foundation.h> 

@interface Person : NSObject{ 
    int age ; 
    int weight; 
} 

-(void) print; 
-(void) setAge:(int) a; 
-(void) setWeight:(int) w; 

@end 
//---implementation--- 
@implementation Person 

-(void) print{ 
    NSLog(@"I am %i years and my weight is %i",age,weight); 
} 

-(void) setAge:(int) a{ 
    age = a; 
} 

-(void) setWeight:(int) w{ 
    weight = w; 
} 
@end 

int main(int argc, char *argV[]){ 

    Person *test; 
    test = [test init]; 
    [test setAge:25]; 
    [test setWeight:75]; 
    [test print]; 
    return 0; 
} 

enter image description here

Когда я запускаю программу вывода консоли исчезает, как показано в правом верхнем углу. Когда я показываю выходную консоль, явно нажимая на нее, я вижу, что программа вышла с кодом 0 (успешный вывод?), Но NSLog не печатается.

enter image description here

Позвольте мне знать, если я делаю какой-то новобранец ошибку :)

+1

test = [[Person alloc] init]; Вы выделили для создания экземпляра. – Ryan

ответ

1
test = [test init]; 

должно быть:

test = [[Person alloc] init]; 

Вы всегда должны Alloc затем инициализации. И вам нужно указать имя класса

+0

Что это за проблема, я все еще не понимаю, почему консоль вывода исчезала, когда я запускал код? После изменения кода он больше не исчезает. – misguided

1

Вам нужны два записи:

Person *test = [[Person alloc] init]; 
0

Вам нужно этот код.

Person *test = [Person new ]; 
Смежные вопросы