当前位置: 代码迷 >> Iphone >> 怎么设置父类的属性的初始值
  详细解决方案

怎么设置父类的属性的初始值

热度:162   发布时间:2016-04-25 06:46:19.0
如何设置父类的属性的初始值?
如下两个类
----------------------------------------------
@interface A : NSObject {
NSString *x;
}
@property (retain,nonatomic) NSString *x;

@end
---------
#import "A.h"
@implementation A
@synthesize x;
@end
-----------------------------------------------
#import <Foundation/Foundation.h>
#import "A.h"

@interface B : A {

}
@end
------------
#import "B.h"


@implementation B

@end
-------------------------------------------------
如上面代码, 现有B C D E.....等类均继承于A类,
怎么办能给A的X属性初始化一个值@"测试"

使得
B *b = [[B alloc] init];
NSLog(b.x);

C *c = [[C alloc] init];
NSLog(b.x);
..........
均能输出@"测试".

例如在C#中可以直接写
@interface A : NSObject {
NSString *x = @"测试";
}
@property (retain,nonatomic) NSString *x;

@end

这里怎么办?

------解决方案--------------------
a 的init中
 NSString *x = [[NSStringalloc] initWithString:@"测试"];
 

------解决方案--------------------
你在父类 init方法里面设置一个断点,看看子类init的时候有没有跳转到 父类的init方法里面

一般父类init了,输出是没有问题的
  相关解决方案