tech materialsiOS 技术文集iOS

当你不爱我的时候,请告诉我(KVC/KVO/NSNotifica

2015-04-06  本文已影响3003人  伯恩的遗产

KVC KVO NSNotification


一、KVC

示例代码如下:

```objc    
//Person.h

@interface Person : NSObject

@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) NSInteger age;
@property (nonatomic, strong) Person *girlFriend;
@property (nonatomic, copy) NSArray *books;

@end
```     

```objc    
- (void)viewDidLoad {
    [super viewDidLoad];

    Person *person = [[Person alloc] init];
    
    NSLog(@"1: %@ - %ld", person.name, person.age);
    
    [person setValue:@"Bourne" forKey:@"name"];
    [person setValue:@21 forKey:@"age"];
    
    NSLog(@"2: %@ - %ld", [person valueForKey:@"name"], person.age);
    
    Person *girl = [[Person alloc] init];
    [person setValue:girl forKey:@"girlFriend"];
    
    NSLog(@"3: %@ - %ld", [person valueForKeyPath:@"girlFriend.name"], person.girlFriend.age);
    
    [person setValue:@"willYou?" forKeyPath:@"girlFriend.name"];
    [person setValue:@20 forKeyPath:@"girlFriend.age"];
    
    NSLog(@"4: %@ - %ld", person.girlFriend.name, person.girlFriend.age);
}
```        
 
**打印输出**       

```
2015-04-06 16:49:19.192 KVC-KVO-test[5685:7429728] 1: (null) - 0
2015-04-06 16:49:19.193 KVC-KVO-test[5685:7429728] 2: Bourne - 21
2015-04-06 16:49:19.194 KVC-KVO-test[5685:7429728] 3: (null) - 0
2015-04-06 16:49:19.194 KVC-KVO-test[5685:7429728] 4: willYou? - 20
```           

二、KVO

三、NSNotification

声明

  1. 以上内容属于本人整理的笔记,如有错误的地方希望能告诉我,大家共同进步。

  2. 以上内容有些段落或语句可能是本人从其他地方Copy而来,如有侵权,请及时告诉我。

上一篇 下一篇

猜你喜欢

热点阅读