您的位置:首页 > 移动开发 > Objective-C

iOS之《Effective Objective-C 2.0》读书笔记(28)

2017-09-07 18:29 423 查看

第28条:通过协议提供匿名对象

1.具体应用场景 –“协议”

匿名对象:delegate

@property (nonatomic, weak) id<PersonDelegate>delegate;


2.核心原理:

任何类的对象都可以充当这个属性,即使该类不继承自NSObject,只要遵循该协议就可以,有时对象类型 并不重要,重要的是 对象有没有实现某些方法,在此情况下级可以使用 匿名类型 来表达这一概念。


3.举例说明:

(1)可变字典中,key的值就可以是任意类型,只要遵从NSCopying协议就行

- (void)setObject:(ObjectType)anObject forKey:(KeyType <NSCopying>)aKey;


(2)处理数据库连接所用的后端代码

//协议
@protocol EOCDatabaseConnection <NSObject>

- (void)connect;
- (void)disconnect;
- (BOOL)isConnected;
- (NSArray *)performQuery:(NSString *)query;

@end
//具体类别
#import <Foundation/Foundation.h>
@protocol EOCDatabaseConnection;
@interface EOCDatabaseManager : NSObject

+ (id)sharedInstance;
- (id<EOCDatabaseConnection>)connectionWithIdentifier:(NSString *)identifier;

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息