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
相关文章推荐
- iOS-Effective Objective-C 2.0 读书笔记(三)
- iOS之《Effective Objective-C 2.0》读书笔记(11)
- iOS之《Effective Objective-C 2.0》读书笔记(51)
- iOS-Effective Objective-C 2.0 读书笔记(二)
- <<Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法>>读书笔记之objc_msgSend
- 编写高质量的iOS代码--Effective Objective-C 2.0 读书笔记
- iOS之《Effective Objective-C 2.0》读书笔记(14)
- iOS之《Effective Objective-C 2.0》读书笔记(21)
- iOS之《Effective Objective-C 2.0》读书笔记(41)
- iOS之《Effective Objective-C 2.0》读书笔记(44)
- iOS之《Effective Objective-C 2.0》读书笔记(16)
- iOS之《Effective Objective-C 2.0》读书笔记(10)
- iOS之《Effective Objective-C 2.0》读书笔记(43)
- iOS之《Effective Objective-C 2.0》读书笔记(1)
- iOS-Effective Objective-C 2.0 读书笔记(一)
- iOS之《Effective Objective-C 2.0》读书笔记(6)
- 《Effective Objective C 2.0 编写高质量iOS与OS X代码的52个有效方法》读书笔记
- iOS之《Effective Objective-C 2.0》读书笔记(45)
- iOS之《Effective Objective-C 2.0》读书笔记(50)
- iOS之《Effective Objective-C 2.0》读书笔记(3)