0

Objective C は初めてで、簡単なプログラムを作成して練習したいと考えていました。何らかの理由でメソッド print が動作しません。何か案は?

#import <Foundation/Foundation.h>

@interface person: NSObject
{
    //----Variables----
    int age;
}
    //----Methods----
    -(void) print;
    -(void)setAge: (int) a;
    @end

@implementation person
-(void) print{
    NSLog(@"You are %i years old!", age);
}
-(void) setAge: (int) a{
    age=a;
}
@end

int main(int argc, char *argv[]){
        @autoreleasepool{
         person *alex; alex = [person alloc];
         [alex setAge:12];
         [alex print];
         return 0;
     }
}
4

3 に答える 3

2
  • クラス名は慣例により大文字で始まる必要があるためPersonpersonどこでも大文字にする必要はありません。

  • (再び、する必要があります)を介してオブジェクトのインスタンスを割り当てましたが、初期化していません。のように、イニシャライザを呼び出す必要があります。(この特定のケースでは、厳密に必要というわけではありませんが、常に実行してください)。[person alloc][Person alloc][[Person alloc] init]

それとは別に、プログラムは機能します。デバッグコンソールでこれを取得します:

2013-10-19 15:20:10.757 Test[13551:303] You are 12 years old!
Program ended with exit code: 0
于 2013-10-19T13:20:55.383 に答える