----------------------------------------------
@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
这里怎么办?
9 个解决方案
#1
也是这么写吧?
不确定哦 看楼下吧
#2
a 的init中
NSString *x = [[NSStringalloc] initWithString:@"测试"];
NSString *x = [[NSStringalloc] initWithString:@"测试"];
#3
楼上这位,你这我试过,不对
#4
补充一下,常见的几种方法我都试过了,
而且上面的代码挺简单的,可以拷过去试试,
请确认没问题再回答.
而且上面的代码挺简单的,可以拷过去试试,
请确认没问题再回答.
#5
你在父类 init方法里面设置一个断点,看看子类init的时候有没有跳转到 父类的init方法里面
一般父类init了,输出是没有问题的
一般父类init了,输出是没有问题的
#6
楼上的,我最初也是想的这种方法,父类init了,但好像父类的就是父类的,调用子类的还是木有.
#7
不信你可以试试,我还没明白为啥会这样
#8
谢谢各位 马上结贴
我自己的问题 确实是在init那里写
我自己的问题 确实是在init那里写
#9
可以在A类中重载init方法,初始化string值
#1
也是这么写吧?
不确定哦 看楼下吧
#2
a 的init中
NSString *x = [[NSStringalloc] initWithString:@"测试"];
NSString *x = [[NSStringalloc] initWithString:@"测试"];
#3
楼上这位,你这我试过,不对
#4
补充一下,常见的几种方法我都试过了,
而且上面的代码挺简单的,可以拷过去试试,
请确认没问题再回答.
而且上面的代码挺简单的,可以拷过去试试,
请确认没问题再回答.
#5
你在父类 init方法里面设置一个断点,看看子类init的时候有没有跳转到 父类的init方法里面
一般父类init了,输出是没有问题的
一般父类init了,输出是没有问题的
#6
楼上的,我最初也是想的这种方法,父类init了,但好像父类的就是父类的,调用子类的还是木有.
#7
不信你可以试试,我还没明白为啥会这样
#8
谢谢各位 马上结贴
我自己的问题 确实是在init那里写
我自己的问题 确实是在init那里写
#9
可以在A类中重载init方法,初始化string值