1 #import <Foundation/Foundation.h>
2
3
4 /*
5 需求:
6 由于init構(gòu)造方法不能傳遞參數(shù)進(jìn)去。對于初始化成員變量不夠靈活,只能寫死。
7 所以我們可以自己定義構(gòu)造方法來初始化對象。需要遵守幾個規(guī)則,讓人一看就知道
8 是構(gòu)造方法而且不會出錯。
9
10 掌握:
11 自定構(gòu)造方法的規(guī)范(類型、返回值、名稱)
12 1.類型:構(gòu)造方法一定是對象方法,一“-”號開頭。
13 2.返回值:構(gòu)造方法的返回值是id
14 3.名稱:構(gòu)造方法一般都以initWith開頭,表示用什么來初始化。
15 */
16
17
18 @interface Person : NSObject
19 @property NSString * name;
20 @property int age;
21 @end
22
23 @implementation Person
24
25 // overrid
26 - (id)init
27 {
28
29 if (self = [super init]) {
30
31 _name = @"jack";
32 _age = 1;
33 }
34 return self;
35 }
36
37 //自定義構(gòu)造方法
38 - (id)initWithName:(NSString *)name
39 {
40
41 if (self = [super init]) {
42
43 _name = name;
44 }
45 return self;
46 }
47
48 - (id)initWithAge:(int)age
49 {
50
51 if (self = [super init]) {
52 _age = age;
53 }
54 return self;
55 }
56
57 - (id)initWithName:(NSString *)name andAge:(int)age
58 {
59
60 if (self = [super init]) {
61
62 _name = name;
63 _age = age;
64 }
65 return self;
66 }
67
68 @end
69
70 int main() {
71
72
73 Person *p = [[Person alloc] initWithName:@"suweipeng" andAge:23];
74 NSLog(@"person's name is:%@, age is:%i", p.name, p.age);
75
76 return 0;
77 }