您的位置:首页 > 其它

关于oc定义的一些问题

2015-03-07 13:17 274 查看
#import "Fraction.h"

@implementation Fraction

@synthesize numerator,denominator;

-(void) print
{
    NSLog(@"%i/%i",numerator,denominator);
}
@end

#import "Fraction.h"

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

    @autoreleasepool {
        
        Fraction *a=[[Fraction alloc] init];
        Fraction *b;
        [a print];
        [b print];
        NSLog(@"%i/%i",a.numerator,a.denominator);
        NSLog(@"%i/%i",[b numerator],[b denominator]);
        NSLog(@"%i",a);
        NSLog(@"%i",b);
        if (!a) {
            NSLog(@"123");
        }
        if (!b) {
            NSLog(@"456");
        }
        a.numerator=1;
        a.denominator=3;
        b.numerator=2;
        b.denominator=5;
        NSLog(@"%i/%i",a.numerator,a.denominator);
        NSLog(@"%i/%i",[b numerator],[b denominator]);
        
    }
    return 0;
}


2015-04-26 10:05:05.981 Try[821:303] 0/0

2015-04-26 10:05:05.984 Try[821:303] 0/0

2015-04-26 10:05:05.985 Try[821:303] 0/0

2015-04-26 10:05:05.987 Try[821:303] 1087952

2015-04-26 10:05:05.987 Try[821:303] 0

2015-04-26 10:05:05.988 Try[821:303] 456

2015-04-26 10:05:05.989 Try[821:303] 1/3

2015-04-26 10:05:05.990 Try[821:303] 0/0

a正常初始化 实例变量为0/0 指针指向任意地址 b由于编译器初始化为nil 即空(nil == 0) 指针指向地址0x00000000

[a print]正常输出 [b print]由于对象为空 没有输出

a的两条NSLog语句分别输出实例变量和地址 b分别输出nil和0

后面b的判断也确实为0 对其设值也是一样为nil 因为没有正常初始化

最后简单类型由于编译器初始化都为0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: