首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Objective-C类目,延展,协议

Objective-C类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛,瞬间感觉OC好高大上。...一.Objective-C类目(Category)         Objective-C比其他OOP编程语言多了个类目,OC除了用继承来扩充类功能函数外我们还可以用类目来实现。...二.Objective-C延展(Extension)         简单说匿名类目就是延展,延展定义方法是类私有的方法只能在类内部调用,定义延展方式就是把类目中括号得名字省略掉,括号保留这就是延展...这种方法不能实现真正方法私有,当在别的文件引入延展头文件,那么在这个文件定义对象就可以直接调用在延展定义所谓私有的方法。...把类中常用方法抽象成OC协议协议只有方法声明没有方法实现,protocol可以把方法定义成@required(必须):使用协议如果不实现@required方法,编译器不会报错但会给出警告

1K80
您找到你想要的搜索结果了吗?
是的
没有找到

Swift专题讲解十六——ARCSwift应用

Swift专题讲解十六——ARCSwift应用 一、引言         ARC(自动引用计数)是Objective-CSwift中用于解决内存管理问题方案。...在学习Objective-C编程时经常会学习到一个关于ARC例子:一个公用图书馆,每次进入一人就将卡插入,走时候将自己的卡拔出拿走。...图书馆系统会判定只要有卡插入,就将图书馆灯打开,当所有卡都被取走后,将图书馆灯关掉。这个例子对应于Objective-C对象声明周期管理十分贴切。...Swift也采用同样方式进行内存管理。         注意:Swift只有引用类型有自动引用计数,结构体、枚举这类值类型是没有引用计数。...,在上面的示例可以看出,除非实例引用全部解除,否则实例将不会调用析构方法,内存不会被释放,如果在写代码时,A引用了B,同样B也引用了A,那么实际上现在A和B引用计数都是2,将A和B都置为nil后,

1.3K20

属性“__attribute__”Objective-C应用

属性“__attribute__”Objective-C应用       关于__attribute__,你可能用不多,但是一定经常见到,系统Foundation框架,__attribute...这是一种非常强大机制,实际应用也非常频繁,例如对以一个拥有模块化和路由功能应用程序,可以通过这种方式来自动化进行路由注册(无需手动调用),需要注意,constructor与destructor...8. objc_requires_super       这个属性用来修饰Objective-C父类方法,如果子类进行了重写,重写方法没有调用父类方法,则会进行编译器提示。...实际编程,很多时候,都是由于子类重写了父类方法造成不可预知问题,通过使用这个属性可以有效对开发者进行提示,例如: ?...overliadable属性可以指定某个函数为可重载,这样既可定义名字相关参数不同多个C函数,调用时,编译器会根据传入参数类型自行判断具体调用哪个函数,如下: ?

2.3K20

Swift创建可缩放图像视图

本教程,我们将建立一个可缩放、可平移图像视图来实现这一功能。 计划 他们说,一张图片胜过千言万语--但它不一定要花上一千行代码!对于我们可缩放图像视图,我们要做是让它成为一个可缩放视图。...medium.com/media/afad3… commonInit(),我们将图像视图居中,并设置它高度和宽度,而不是把它固定在父视图上。这样一来,滚动视图就会从图像视图中获得其内容大小。...设置滚动视图 我们需要实际设置我们滚动视图,使其可缩放和可平移。这包括设置最小和最大缩放级别,以及指定用户放大时使用UIView(我们例子,它将是图像视图)。...我们将通过我们添加imageName字符串,并在字符串改变时更新UIImageView来实现。...让我们给我们类添加另一个初始化器,这样我们就可以代码设置图像名称。 medium.com/media/074d4… 就这样了!现在我们可以像这样通过图片名称以编程方式初始化我们视图了。

5.6K20

Swift进阶一:Swift简介

4,枚举类型增强 Swift,枚举可以使用整型、浮点型、字符串等来表示其枚举成员原始值,还能拥有属性和方法,甚至支持泛型、协议、扩展等等。...而在Objective-C,枚举则鸡肋很多,它只是一个标记值而已。 5,泛型 Swift是支持泛型,也支持泛型类型约束等特性。 Objective-C则没有泛型概念。...同时,Swiftprotocol还可以用于值类型,比如结构体和枚举。 Objective-C协议相对于Swift,则显得寒酸很多。...因此为了方式运行期Crash,我们调用代理方法时候需要判断一下能否响应该方法,能响应时候才会放心去调用。...Objective-C,函数仍然是次等公民,我们需要对其进行selector封装或者利用block来实现Swift类似的效果。

2.8K20

Swift 4.0 新特性

去掉了 characters Swift 3 String 需要通过 characters 去调用属性方法, Swift 4 可以通过 String 对象本身直接调用,例如: let values...预编译 Bridging Headers 文件 对于 SwiftObjective-C 混合项目,Swift 调用 Objective-C 时,需要建立一个 Bridging Headers 文件...,然后把 Swift调用 Objective-C头文件都写在里面,编译器会读取 Bridging Headers 头文件,然后生成一个庞大 Swift 文件,文件内容是这些头文件内...减少隐式 @objc 自动推断 项目中想把 Swift API 暴露给 Objective-C 调用,需要增加 @objc。...} Swift 4 ,隐式 @objc 自动推断只会发生在很少的当必须要使用 @objc 情况,比如: 复写父类 Objective-C 方法 符合一个 Objective-C 协议 其它大多数地方必须手工显示加上

1.8K90

MIME协议邮件应用详解

MIME提供了一种可以邮件附加多种不同编码文件方法,弥补了原来信息格式不足。实际上不仅仅是邮件编码,现在MIME经成为HTTP协议标准一个部分。...现在我们关注是MIME邮件,因此以下讨论姑且称“消息”为“邮件”。   1.邮件头    MIME格式邮件头包含了发件人、收件人、主题、时间、MIME版本、邮件内容类型等重要信息。...base64是一种将二进制01序列转化成ASCII字符编码方法。编码后文本或者二进制消息,就可以运用SMTP等只支持ASCII字符协议传送了。...2.邮件体   邮件内容有各种各样(既纯文本,超文本,内嵌资源(比如内嵌超文本图片),附件组合),服务器如何知道该邮件是哪些混合呢?...multipart诸类型共同特征是,段头指定“boundary”参数字符串,段体内每个子段以此串定界。

3.2K10

DNS远程调用执行应用

纯属蹭log4j2热度文,和安全没有直接关系,本文只谈DNS以及日志应用; 通过dnslog.cn截图,分析dnslog.cn原理,基于此,介绍了可以获取更多信息ceye功能;应用场景上...Address一般是服务器本身配置DNS外网出口IP,证明是下部分命令成功icloud.com登录功能所在服务器成功执行,这个是一个可以执行命令演示,如果这里exp是一个echo "...image.png 我们将图一IP进行查看,看到是美国苹果公司外网ip,该IP大概率为提供icloud.com登录功能服务器所配置DNS外网IP;我们dnslog.cn获取到唯一域名后,...自己设备上执行,可以看到我设备本身DNS外网递归出口为27.40.22.150IP地址; image.png image.png 二、实现原理 image.png     当我们...权威服务器就能知道,什么时间,什么IP请求了什么域名,然后做日志回显即可完成该操作;(该网站提供子域名TTL也是 190,所以190s之内请求就记录不了了,要等到下一个TTL周期进行请求。)

5.9K240

OVSDB介绍及OpenDaylight调用

前言 OVS是一种开源软件交换机,可安装于通用虚拟服务器环境虚拟环境单个、多个物理机上不同虚拟主机都需要通过OVS实现数据交换。...目前Opendaylight控制器也有一个单独子项目实现此管理协议,即OVSDB(比如ovsdb-release-lithium-sr3)。...记录网桥、端口、QOS等网络配置信息是以JSON格式(schema)保存,通常schema/usr/share/openvswitch/vswitch.ovsschema。...1.1 OVSDB管理协议 OVSDB管理协议(OVSDB management protocol)是VMware公司提出负责管理OVS数据库协议,OVSDB管理协议定义了一套RPC接口,用户可通过远程调用方式管理...其中transact是OVSDB管理协议中比较重要操作方法,它是RPC请求参数中提供数据库增、删、改、查等常用操作: 二、ODLOVSDB插件 ODL包括三个OVSDB插件,OVSDB southbound

4.4K91

OIDC 协议及其 Kubernetes 运用

K8s 认证机制大多都是用 ServiceAccount 来做,虽然 K8s 有 User 概念,但没有一种资源与“人”对应,所以 K8s 里做用户管理还是很困难。...好在 K8s 对于用户管理提供了另一种方式,即对接 OIDC 协议。本篇文章我们就来了解一下什么是 OIDC 协议,及其 K8s 运用。...OIDC 协议 OpenID Connect 协议(OIDC 协议)是基于 OAuth 2.0 协议身份认证标准协议 OAuth 2.0 上构建了一个身份层。...所以 OAuth 2.0 协议,将 token 传输放在了后面一步,即将 token 放置 Response body 。...而 APIServer 如何根据 ID Token 知道是哪个用户呢?这也需要我们 APIServer 配置中指定 ID Token 对应字段。

2.5K00
领券