#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