0

私はobjective-cを初めて使用し、Javaでコーディングしていました。

以下のコードをXcode4.5で作成しました

コードは私にこの出力を取得する必要があります:

 the value of  m is:
  1/3

しかし、私はこの出力を取得します:

the value of  m is:

誰かがコードの何が悪いのか教えてもらえますか

コード :

#import <Foundation/Foundation.h>

@interface Fraction : NSObject
{
    int num ;
    int dem;
}

-(void) print;
-(void) setNum:(int) n ;
-(void) setDem: (int) d;
@end


@implementation Fraction
-(void) print {
    NSLog(@"%i/%i",num,dem);
}
-(void) setNum:(int)n{

    num=n;
    NSLog(@"set num work fine %i:",n);
}

-(void)setDem:(int)d{
    dem=d;
    NSLog(@"set dem work fine %i:",d);
}

@end

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

    @autoreleasepool {
        Fraction *m;

        // m=[m alloc] ;
        m=[m init];

        [m setNum:1];
        [m setDem:3];

        NSLog(@"the value of  m is:");
        [m print];
    }return 0;

}

誰でもm=[malloc]を説明できますか; 新しいxcodeで

4

1 に答える 1

4

allocはクラスメソッドであるため、クラスで呼び出す必要があります。

m = [[Fraction alloc] init];

または、あなたのスタイルで:

m = [Fraction alloc];
m = [m init];

これがあなたが何も印刷しない理由です、あなたがそれを印刷しなかったのでmまだです。メッセージを受信者に送信するとが返されるので、印刷しようとすると基本的にオブジェクトがあります。nilallocinitnilnilnil

于 2013-01-13T22:18:06.860 に答える