Objective-C에서 지정된 초기화 도구를 만드는 올바른 방법은 무엇입니까?Objective-C의 지정된 초기화 도구
ivars를 초기화하는 올바른 방법입니까?
개선 할 사항을 제안 해 줄 수 있습니까?
Person.h
@interface Person : NSObject
@property (nonatomic, retain) NSString *name;
@property (nonatomic, assign) int age;
@property (nonatomic, assign) NSString *sex;
@property (nonatomic, assign) int weight;
-(id)initWithName:(NSString *)name;
-(id)initWithName:(NSString *)name age:(int)age;
-(id)initWithName:(NSString *)name age:(int)age sex:(NSString *)s;
-(id)initWithName:(NSString *)name age:(int)age sex:(NSString *)s andWeight:(float)w;
@end
Person.m
@implementation Person
@synthesize name = _name;
@synthesize sex = _sex;
@synthesize age = _age;
@synthesize weight = _weight;
-(id)initWithName:(NSString *)name age:(int)age sex:(NSString *)s andWeight:(float)w
{
if(self = [super init])
{
[self setName:name];
[self setAge:age];
[self setSex:s];
[self setWeight:w];
}
return self;
}
-(id)initWithName:(NSString *)name age:(int)age sex:(NSString *)s
{
return [self initWithName:name age:age sex:s andWeight:0];
}
-(id)initWithName:(NSString *)name age:(int)age
{
return [self initWithName:name age:age sex:0];
}
-(id)initWithName:(NSString *)name
{
return [self initWithName:name age:0];
}
-(id)init
{
return [self initWithName:nil];
}
사전에
감사합니다!
'init'를 호출하면 다른 모든 init 메소드를 호출합니다. – beryllium
당신의 질문에 아무런 관련이없는 사소한 제안 :'섹스 '를 열거 형으로 만들고 싶을 수도 있습니다 :'typedef enum Sex {UnspecifiedSex, Male, Female} Sex;'당신이 다른 값을 많이 가질지 모르니까 여기에 ;-) – DarkDust
감사합니다 @DarkDust! 그것은 의미가 있습니다. – foho