
Objective-C & Swift
文章平均质量分 50
打工人小飞
公众号:机器修行
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NSString 使用 copy 关键字和 strong 关键字修饰的异同
NSString 为什么要用 copy 关键字,如果用 strong 会有什么问题?当然,这里没有说用 strong 就一定不行,使用 copy 和 strong 是看情况而定的。网上也有很多文章是解释这一点的,但都不够形象清晰,博主的博客风格是力求简单易懂,尽量用实例来说明问题。不说太多废话,用最简单的例子来说明问题,直接上代码和运行截图: 通过上面的例子可以看出,当使用 strong 修饰 N原创 2017-10-20 17:40:05 · 1910 阅读 · 0 评论 -
代理属性为何要用 weak 修饰?
代理模式在 IOS 开发中的使用频率非常之高,然而很多人只是单纯地惯性使用,并没有弄清楚一点——要用 weak 修饰代理属性,今天就来细说这其中的缘由。用一个实例进行说明(一共有三个类,BabyView 类,BabySitterView 类,ViewController 类,假设 BabyView 类想要做一些自己无法做的事情,就必须具有代理的属性,因此指定一个协议,而 BabySitterView原创 2017-10-19 11:25:37 · 1483 阅读 · 0 评论 -
为什么说 Objective-C 是一种动态语言?
为什么说 Objective-C 是一种动态语言?这看起来似乎是一个简单而不简约而又老生常谈的问题,然而真正弄懂 Objective-C 的动态特性,三言两语还真是说不清楚。Objective-C 是 C 的超集,在 C 语言的基础上添加了面向对象的特性,并且用 Runtime 这个运行时机制,为 Objective-C 增添了动态的特性。这篇文章不以博大精深的 Runtime 作为重点,而以开发过原创 2017-10-17 17:23:30 · 2340 阅读 · 0 评论 -
对比 CGRectInset 与 CGRectOffset
CGRectInset 与 CGRectOffset 都是通过参数改变CGRect并返回一个CGRect类型的数据。总结出两者的区别在于:CGRectInset会进行平移和缩放两个操作。CGRectOffset做的只是平移。先把苹果的官方文档做简要解释:CGRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy):通过第二个参数 dx 和第三个参数原创 2017-08-23 15:37:33 · 6355 阅读 · 0 评论 -
Objective-C 数据类总结
基础的东西往往才是最重要的东西,在项目开展过程中,有时候会发现一个牢固的基础才是高效开发的关键。本次对 Objective-C 的各种常用数据类型进行总结和对比。由于 Objective-C 本身是 C 语言的超集,所有所有 C 语言支持的基本数据类型,Objective-C 同样支持,并且 Objective-C 还支持其他一些常用数据类型,可避免不同机器位宽不同带来的麻烦。int 与 NSInt原创 2017-07-08 11:32:00 · 1680 阅读 · 0 评论 -
swift3.1 快速上手系列(三)
swift 3.x 还在学习中,swift 4 的脚步就已到来。生活就是这样,必须保持不断学习的劲头,才能在这年轻的战场上脱颖而出。但要说明的是,swift 各种版本的更新与迭代,都是向着更简洁、更方便、更强大发展,让 IOS 开发更优雅。1. 遍历构造函数 convenience默认情况下,所有的构造方法都是指定构造函数 Designated,使用 convenience 修饰的构造函数叫做便利构原创 2017-06-21 10:43:57 · 727 阅读 · 0 评论 -
swift 3.1 快速上手系列(二)
在 swift 3.1 快速上手系列(一) 中,主要介绍了 Xcode 8 以及 swift 3.1 在实际编程过程中的一些小技巧以及几种常用的解包方案。内容虽简单,但却很实用,这次,我们来谈谈 swift 3.1 中的异常处理机制以及 以及类型转换运算符 as .异常处理机制是在 swift 2.0 引进的,下面直接以代码的形式(以反序列化 throw 抛出异常为例)进行比较学习:let json原创 2017-06-04 16:32:38 · 737 阅读 · 0 评论 -
swift3.1 快速上手系列(一)
swift 作为 IOS 开发的下一个主流语言(实际上目前的排行早已超过Objective-C),为 IOS 注入了新生命。但也不得不感慨其变化莫测,要跟上它的步伐,就得保持积极学习的态度,该系列会将自己总结的 swift 相关的比较重要而又比较独特的知识点和注意点与大家分享!在 Xcode 8 的到来后,第三方插件的使用遭遇了阻碍,例如大牛王巍写的 VVDocument,但是苹果官网提供了可供使用原创 2017-05-28 20:12:32 · 1376 阅读 · 0 评论 -
详述 IOS 之代理模式(Objective-c)
1. 什么是代理模式? 代理模式是在 IOS 中经常遇到的一种设计模式,那什么叫做代理模式呢? 举个例子:有一个婴儿,他本身不会自己吃饭和洗澡等等一些事情,于是婴儿就请了一个保姆,于是婴儿和保姆之间商定了一个协议,协议中写明了保姆需要做什么事情, 而保姆就是这个代理人, 即:婴儿和保姆之间有个协议,保姆继承该协议,于是保姆就需要实现该协议中的条款成为代理人。2. 为什么使用代理模式?原创 2016-09-07 17:17:37 · 2993 阅读 · 0 评论 -
Objective-C 字符串、数组、字典及类型判断
1、字符串NSLog *str = @"Hello IOS";@符号:表示强制类型转换,不加@表示C语言类型的字符串,加@表示NSString类型数据。%@:NSString类型的字符串2、数组 创建数组的3中方式: (1)通过@符号创建:NSArray *arr = @[@"Hello",@"Feige"];for (int i = 0; i < [arr count]; i++){原创 2016-07-11 09:27:48 · 6682 阅读 · 0 评论 -
Objective-C 语法快速预览
1 减号 -(或者加号 +) 减号表示一个函数、或者方法、或者消息的开始,怎么说都行。比如在 java 中,一个方法的写法可能是: private void hello(int number) { //statement} 用Objective-C写出来就是:-( void ) hello : (int) number{//statement}用加号的意思就是其他函数可以直接调用原创 2016-06-03 16:03:15 · 770 阅读 · 0 评论 -
swift 学习笔记之闭包
1 嵌套函数2 闭包表达式的一般格式闭包表达式的一般格式为:{(参数列表)->返回值类型 in 语句}其中,参数可以是常量、变量和输入-输出参数,但没有默认值。开发者也可以在参数列表的最后使用课表参数。而元组也可以作为参数和返回值。关键字 in 表示闭包的参数和返回值类型定义已经完成,闭包函数体即将开始。3 闭包表达式的简写机制(1)原始闭包表达式 (2)swift可以根据所给出的变量原创 2016-05-18 20:38:28 · 624 阅读 · 0 评论 -
swift学习笔记之函数形参,返回值以及函数类型
1、函数形参1.1 函数形参名(此处只讨论带参函数)函数参数都有一个外部参数名和一个本地参数名。外部参数名用来标记传递给函数调用的参数,本地参数名在实现函数的时候使用。 一般情况下,第一个参数省略其外部参数名,第二个及以后的参数使用其本地参数名作为自己的外部参数名。所有参数需要有不同的本地参数名,但可以共享相同的外部参数名。1.2 指定外部参数名外部参数名是为了让函数中的参数明确以及便于理解。原创 2016-05-18 19:26:30 · 2169 阅读 · 0 评论 -
swift 中运算符空格规则,as? 操作符
如下图所示,变量与运算符之间的空格应该保持对称,对于双目运算符,左右两边要么都有空格,要么都不能有空格,否则会报错(会被判断为闭包表达式);对于单目运算符,不应有空格,如:squares++,而不应写成squares ++. as? 操作符会执行转换并返回期望类型的一个选项值,如果转换成功则返回的选项包含有效值,否则选项值为 nil。as! 操作符会执行一个实例到目的类型的强制转换,因此使用该形式原创 2016-04-27 20:08:46 · 1187 阅读 · 0 评论 -
swift 中的“..<”,“ ...“以及“_”
“..<”:半开区间运算符,不包括右边界。 “…” :闭区间运算符,包括左右边界。 “_” :通配符以下举例说明:以上实例涵盖了上述三种符号,从playground 右侧的运行结果可以清晰明了地对比其特点和不同之处。原创 2016-04-27 14:44:33 · 2010 阅读 · 0 评论 -
可选类型(?)与强制解析运算符(!)
可选类型:swift中的可选类型用来判断值是否存在。如果值存在就会输出,如果不存在,就会返回一个nil(nil是一个特定类型的空值。任何类型的可选变量都可以设置为nil),它是swift专用类型。可选类型常量和变量的定义是使用问号实现的,其语法形式如下:let/var 常量名/变量名:数据类型?以下示例在Xcode7 playground中用?定义可选类型的变量:强制解析运算符:可选类型其实是一个枚原创 2016-03-16 19:56:15 · 1219 阅读 · 0 评论