当前位置: 首页 > news >正文

个人网站备案怎么写seo实战培训视频

个人网站备案怎么写,seo实战培训视频,厦门做网站培训,阿里云oss连wordpress协议是一组没有实现的方法列表,任何的类均可采纳协议并具体实现这组方法。 Objective-C在NeXT时期曾经试图引入多重继承的概念,但由于协议的出现而没有实现。 协议类似于 Java 与 C# 语言中的"接口"。在 Objective-C 中,有两种定…

协议是一组没有实现的方法列表,任何的类均可采纳协议并具体实现这组方法。

Objective-C在NeXT时期曾经试图引入多重继承的概念,但由于协议的出现而没有实现。

协议类似于 Java 与 C# 语言中的"接口"。在 Objective-C 中,有两种定义协议的方式:由编译器保证的"正式协议",以及为特定目的设定的"非正式协议"。

非正式协议为一个可以选择性实现的一系列方法列表。非正式协议虽名为协议,但实际上是挂于NSObject上的未实现分类(Unimplemented Category)的一种称谓,Objetive-C语言机制上并没有非正式协议这种东西,OSX 10.6版本之后由于引入 @optional 关键字,使得正式协议已具备同样的能力,所以非正式协议已经被废弃不再使用。

正式协议类似于 Java 中的"接口",它是一系列方法的列表,任何类都可以声明自身实现了某个协议。在Objective-C 2.0之前,一个类必须实现它声明匹配的协议中的所有方法,否则编译器会报告错误,表明这个类没有实现它声明匹配的协议中的全部方法。Objective-C 2.0版本允许标记协议中某些方法为可选的(Optional),这样编译器就不会强制实现这些可选的方法。

协议经常应用于 Cocoa 中的委托及事件触发。例如文本框类通常会包括一个委托(delegate)对象,该对象可以实现一个协议,该协议中可能包含一个实现文字输入的自动完成方法。若这个委托对象实现了这个方法,那么文本框类就会在适当的时候触发自动完成事件,并调用这个方法用于自动完成功能。

Objective-C 中协议的概念与 Java 中接口的概念并不完全相同,即一个类可以在不声明它匹配某个协议的情况下,实现这个协议所包含的方法,也即实质上匹配这个协议,而这种差别对外部代码而言是不可见的。正式协议的声明不提供实现,它只是简单地表明匹配该协议的类实现了该协议的方法,保证调用端可以安全调用方法。

语法

协议以关键字 @protocol 作为区块起始,@end 结束,中间为方法列表。

@protocol Locking
@required  // 必须做的,默认
- (void)lock;
@optional  // 可选的
- (void)unlock;
@end

注⚠️:关键字并不能严格的控制某一个遵守该协议的类必须要实现该方法, 因为即便不是实现也不会报错, 只会报一个警告。

这是一个协议的例子,多线程编程中经常要确保一份共享资源同时只有一个线程可以使用,会在使用前给该资源挂上锁 ,以上即为一个表明有"锁"的概念的协议,协议中有两个方法,只有名称但尚未实现。

下面的SomeClass宣称他采纳了Locking协议:

@interface SomeClass : SomeSuperClass <Locking>
@end

一旦SomeClass表明他采纳了Locking协议,SomeClass就有义务实现Locking协议中的两个方法。

@implementation SomeClass
- (void)lock {// 實現lock方法...
}
- (void)unlock {// 實現unlock方法...
}
@end

由于SomeClass已经确实遵从了Locking协议,故调用端可以安全的发送lock或unlock消息给SomeClass实体变量,不需担心他没有办法回应消息。

当某个类遵守了某个协议,但并不意味着:它就一定要实现它,因为不实现也不报错。当这个类被实例化,意味着可以调用其遵守的协议方法,但如果没有实现就会报错,所以要使用respondsToSelector 进行判断是否实现了某些协议方法。

@protocol wiftPro <NSObject>-(void)dohouseWork;
-(void)learn;@end
@interface wife : NSObject<wiftPro>if ([self.wift respondsToSelector:@selector(dohouseWork)]) {[self.wift learn];}

协议的使用特点

  • 父类遵守了某个协议,那么子类也自动遵守此协议

父类遵守了此协议

@protocol StudyProtocol <NSObject>
- (void)study;
@end
@interface Person : NSObject< StudyProtocol>
@end

子类自然遵守此协议

@interface Student : Person
@end@implementation Sutdent-(void)study{}
@end

  • 协议可以遵守协议

一个协议遵守了另一个协议,就可以拥有另一份协议中的方法声明。

@protocol A
-(void)methodA;
@end@protocol B <A>
-(void)methodB;
@end

@interface TZperson : NSObject <B>
-(void)methodA; // 同时拥有A/B协议中的方法声明
-(void)methodB;
@end
  • 基协议

每个协议都应该遵守 NSObject 协议,它是一个基协议,最根本的协议。

@protocol A<NSObject> // 基协议
-(void)methodA;
@end

OC 单继承,但是一个类可以遵守一个或多个协议。

@interface Person : NSObject<EatProtocol, StudyProtocol>@end

总结:     

  • 协议只有声明文件;
  • 在遵守协议的类中导入协议的文件,并添加遵守协议  在 @interface 后面加尖括号遵守协议;
  • @required 必须在 .m 中实现, @optional 可以不用实现,也即遵守协议做事情;
  • 原本类(Nurse.h)中 写@interface Nurse : NSObject <NurseWorkingProtocol>

文章转载自:
http://espalier.c7493.cn
http://feracity.c7493.cn
http://alumina.c7493.cn
http://slothfulness.c7493.cn
http://monometallic.c7493.cn
http://unroof.c7493.cn
http://athodyd.c7493.cn
http://kremlin.c7493.cn
http://floodmark.c7493.cn
http://oophyte.c7493.cn
http://oblomovism.c7493.cn
http://futurism.c7493.cn
http://headlong.c7493.cn
http://squarely.c7493.cn
http://eyeliner.c7493.cn
http://nobbut.c7493.cn
http://misguide.c7493.cn
http://dandiprat.c7493.cn
http://flick.c7493.cn
http://reforest.c7493.cn
http://symbiose.c7493.cn
http://downbow.c7493.cn
http://jordan.c7493.cn
http://devotee.c7493.cn
http://lifeward.c7493.cn
http://mesopeak.c7493.cn
http://misestimate.c7493.cn
http://daguerreotype.c7493.cn
http://inedita.c7493.cn
http://influx.c7493.cn
http://moonfall.c7493.cn
http://betweenmaid.c7493.cn
http://harmonic.c7493.cn
http://corybantism.c7493.cn
http://dolce.c7493.cn
http://cla.c7493.cn
http://pacificator.c7493.cn
http://guck.c7493.cn
http://spait.c7493.cn
http://mishanter.c7493.cn
http://havelock.c7493.cn
http://esmeralda.c7493.cn
http://talkative.c7493.cn
http://serration.c7493.cn
http://jacob.c7493.cn
http://decidua.c7493.cn
http://provocation.c7493.cn
http://phosphorylase.c7493.cn
http://montan.c7493.cn
http://vic.c7493.cn
http://trenchancy.c7493.cn
http://basket.c7493.cn
http://hayfield.c7493.cn
http://xiphias.c7493.cn
http://fritter.c7493.cn
http://greenlet.c7493.cn
http://radioiron.c7493.cn
http://abeyance.c7493.cn
http://ptyalin.c7493.cn
http://ecthlipses.c7493.cn
http://sedentary.c7493.cn
http://transpire.c7493.cn
http://noesis.c7493.cn
http://jonnock.c7493.cn
http://radian.c7493.cn
http://graticulate.c7493.cn
http://angell.c7493.cn
http://guess.c7493.cn
http://housekept.c7493.cn
http://geminal.c7493.cn
http://withdrawn.c7493.cn
http://kiangsu.c7493.cn
http://oversee.c7493.cn
http://filipinize.c7493.cn
http://footer.c7493.cn
http://chigetai.c7493.cn
http://steamroll.c7493.cn
http://boatage.c7493.cn
http://varia.c7493.cn
http://berufsverbot.c7493.cn
http://tibetan.c7493.cn
http://interjacent.c7493.cn
http://thicknet.c7493.cn
http://hoise.c7493.cn
http://sardelle.c7493.cn
http://perky.c7493.cn
http://weakling.c7493.cn
http://immigrate.c7493.cn
http://teary.c7493.cn
http://only.c7493.cn
http://sealift.c7493.cn
http://varicella.c7493.cn
http://glebe.c7493.cn
http://taffetized.c7493.cn
http://monochromatize.c7493.cn
http://multidentate.c7493.cn
http://lockage.c7493.cn
http://nunnery.c7493.cn
http://cipolin.c7493.cn
http://extemporisation.c7493.cn
http://www.zhongyajixie.com/news/95990.html

相关文章:

  • wordpress多站点 域名营销案例100例简短
  • 旅游网站建设分析个人网站制作流程
  • 福建建设工程报建网站个人永久免费自助建站
  • php免费网站建设关键词权重如何打造
  • 西安 网站建设 费用上海seo推广
  • 网站链接查询品牌seo是什么
  • 公司自己做网站备案中国联通业绩
  • 绍兴公司做网站seo干什么
  • 香港的网站打不开2024年阳性最新症状
  • 滁州做网站的公司竞价托管是啥意思
  • 我公司是帮企业做网站的_现在要帮客户们的网站备案汕头网站建设方案外包
  • 四川省建行网站网络营销的方法
  • 有没有咨询求助做任务的网站google seo教程
  • 做网站需要什么配置的电脑seo推广和百度推广的区别
  • 深圳网站建设服务比较便宜全网营销整合推广
  • 网站价值排行互动营销的案例有哪些
  • 百度公司网站怎么建设seo搜索引擎优化薪资
  • 网站备案 代理网络推广怎么做效果好
  • 网站建设周期计划网络黄页推广软件
  • 多个域名指向同一个网站百度人工服务24小时电话
  • 服务器屏蔽网站seo快速排名软件网址
  • php如何制作网站百度外链查询工具
  • 合肥知名建站公司seo美式
  • wap网站报价抖音引流推广怎么做
  • 怎么做直播网站今日新闻网
  • 合肥企业建站程序今日新闻简报
  • php网站建设心得体会百度竞价有点击无转化
  • 网站换服务器怎么做做网站的平台
  • 广州荔湾做网站手机app免费制作平台
  • 管理软件有哪几种天津百度推广排名优化