看下面的** 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@protocol apiserviceprotocol
- (void)requestnetwithurl:(nsurl *)url param:(nsdictionary *)param;
@end
@inte***ce nsobject (apiserviceprotocol)
@end
@implementation nsobject (apiserviceprotocol)
- (void)requestnetwithurl:(nsurl *)url param:(nsdictionary *)param
@end
這段**剛開始看到 時候,發現實現該協議(方法1)和不去實現該協議直接寫成自己的方法(方法2),不一樣所有的nsobject可以訪問?
這樣想確實是,回頭再想想,如果採取方法2 是不是介面需要暴露在.h中,採用方法1介面不需要暴露在,只包含相應的protocol,做實現判斷即可,以後是誰現實的不關心。
第二部分
下面的apiserver protocol 是否多餘?
目前看是多餘的。
但考慮,如果對外還有資料統計,這時候怎麼傳送,如果apiserver 同事也實現了資料統計傳送協議,乙個物件就可以全部搞定
要不apiservicepassthrough還需要再增加乙個 實現datastatistic 協議的物件。
這塊不一定正確,只是個人的想法。
@protocol
apiserviceprotocol
<
nsobject
> -
(void
)requestnetwithurl:(
nsurl
*)url
param:(
nsdictionary
*)param;
@end
@protocol
apiservice
<
apiserviceprotocol
> //
private
functions
@end
@inte***ce
apiservicepassthrough
:nsobject
@property
(nonatomic
,strong
)nsurl
*url;
@property
(nonatomic
,strong
)nsdictionary
*param; -
(instancetype
)initwithapiservice:(
id<
apiservice
>)apiservice; -
(void
)execnetrequest;
@end
OC中的協議( protocol)
我們之前講過非正式協議 nsobject的類目 那麼肯定還有正式協議。在oc中,乙個類可以實現多個協議,通過協議可以彌補單繼承的缺陷。但是協議跟繼承不一樣,協議只是乙個方法的列表,方法的實現得靠遵循該協議的類去完成。協議 協議是一套標準,這個標準裡面宣告了很多方法,但是不關心具體這些方法是怎麼實現的...
Protocol (協議中的構造器)
import uikit class viewcontroller uiviewcontroller 用作俠客的協議,凡是俠客,都應該有一把 protocol knighterrant class disiple knighterrant 協議中的構造器方法在遵循類中被實現為指定構造器 requir...
swift 中協議的使用 protocol
協議可被類 結構體 或列舉型別採納以提供所需功能的具體實現。滿足了協議中需求的任意型別都叫做遵循了該協議。實現目標,以官方文件為背景,修改了一下,使其更簡單,建立乙個遊戲玩家和遊戲狀態跟蹤的類,將遊戲和開始和結束做為遊戲狀態。protocol gameprotocol func gamestart ...