排序:
默认
按更新时间
按访问量

Swift 中如何理解copy-on-write

当值类型(如struct)在复制时,复制的对象和元、原对象实际上在内存中指向同一个对象。当且仅当修改复制后的对象时,才会在内存中重新创建一个新的对象。举例: //arrayA是一个数组,为值类型 let arrayA = [1,2,3] //arrayB这个时候与arrayA在内存中是同一个...

2018-08-09 23:12:18

阅读数:15

评论数:0

iOS--assign修饰对象类型会怎样?

首先我们需要明确,对象的内存一般被分配到堆上,基本数据类型和oc数据类型一本被分配在栈上。 如果用assign修饰对象,当对象释放后(因为不存在强引用,离开作用域对象内存可能被回收),指针的地址还是存在的,也就是说指针并没有被置为nil,下次再访问该对象就会造成野指针异常。对象时分配在堆上的,堆...

2018-08-09 22:50:27

阅读数:6

评论数:0

MacBookPro 连接无线显示“密码无效”

当你确定输入的密码是正确的,却提示你密码无效,试了几次都不行的时候,把电脑上的USB端口上的设备都拔掉试试,USB3.0设备会影响wifi连接。

2018-07-27 10:16:17

阅读数:556

评论数:0

iOS AFN网络请求报错: Invalid parameter not satisfying: URLString

string = [string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"`#%^{}\&q...

2018-07-26 17:27:21

阅读数:12

评论数:0

CocoaPods安装报错:gem install cocoapods ERROR: While executing gem ... (Gem::FilePermissionError)

在cocoapods 执行 sudo gem install cocoapods的时候出现  While executing gem ... (Gem::FilePermissionError)    You don't have write permissions for the /usr/bi...

2018-06-26 23:24:29

阅读数:29

评论数:0

iOS assign与weak的区别

相同点:两者都是弱引用声明类型;不同点:weak声明的变量在栈中就会自动清空,赋值为nil;  assign声明的变量在栈中可能不会自动赋值为nil,就会造成野指针错误注意: 在MRC下,使用delegate时使用assign,ARC时用assign需要手动释放,建议用weak更安全。不管是MRC...

2018-06-20 14:40:16

阅读数:16

评论数:0

GCD dispatch_sync同步引起死锁的问题

截图中可以看到程序运行到主线程同步执行时出现崩溃,下面来分析一下崩溃原因:首先了解一下dispatch_sync:第一个参数 queue 为队列对象,第二个参数block为block对象。这个接口是同步将block扔到队列queue中去执行,即扔了我就等着,等到queue排队把这个block执行完...

2018-06-14 18:18:54

阅读数:14

评论数:0

Swift 部分控制器隐藏状态栏

方法一:第一步:找到info.plist文件,添加字段 View controller-based status bar appearance 为 NO;第二部:在目标控制器视图即将出现方法中添加代码 UIApplication.shared.setStatusBarHidden(true, wi...

2018-06-14 15:32:24

阅读数:47

评论数:0

Swift 4.0 GCD 倒计时按钮

override func viewDidLoad() { super.viewDidLoad() //写一个按钮 btn.frame.size = CGSize(width: 100, height: 50) btn.center ...

2018-06-14 11:13:12

阅读数:66

评论数:0

Swift 属性关键字

private:声明为私有的实体只能在其声明的范围内被访问;fileprivate:文件内私有,超出当前文件不能访问;internal:默认访问级别,internal可以不写,整个模块都可以访问;public:使用public修饰的类,属性或方法,可以被任何类访问,但在其他的module中不可以被...

2018-06-06 15:52:12

阅读数:26

评论数:0

Swift @escaping @ noescaping 逃逸闭包与非逃逸闭包

闭包只有在函数中做参数时才会区分逃逸闭包和非逃逸闭包。Swift 3.0之后,传递闭包到函数中的时候,系统会默认为非逃逸闭包类型(NonescapingClosures)@noescaping,逃逸闭包在闭包前要添加@escaping关键字。从生命周期看两者区别:非逃逸闭包的生命周期与函数相同:1...

2018-05-30 23:26:57

阅读数:84

评论数:2

Swift map、flatMap、compactMap、filer、reduce的使用总结

Swift 提供了map、flatMap、compactMap、filer、reduce这几个高阶函数支持。1,map : 可以对数组中的每一个元素做一次处理// 计算字符串的长度 let stringArray = ["Objective-C", &q...

2018-05-29 17:22:50

阅读数:212

评论数:0

Swift 面向协议编程之协议扩展

协议的命名遵循Swift的标准库,即协议名以“Type”,"-able","-ible"结尾。例如 SequenceType,GeneratorType,CustomStringCoveeertible,  -type定义行为...

2018-05-28 18:39:21

阅读数:23

评论数:0

OC与Swift混编项目中引入use_frameworks!冲突的问题

项目下个版本开始用Swift编写,这涉及到OC与Swift混编的问题。早podfile中写入use_frameworks! 再导入一个Swift第三方框架,运行项目发现AFN找不到了:把Swift的第三方和use_frameworks!去掉项目又可以运行了,首先思考:只添加两样东西  use_fr...

2018-05-26 16:33:19

阅读数:167

评论数:0

iOS 手势 locationInView:和translationInView:的区别

locationInView:获取到的是手指点击屏幕实时的坐标点;translationInView:获取到的是手指移动后,在相对坐标中的偏移量例如:CGPoint  translation = [panGesture translationInView:self.imageView];trans...

2018-05-21 17:47:43

阅读数:18

评论数:0

UIView的弹簧动画

文章转载:https://blog.csdn.net/chengkaizone/article/details/48621161iOS7新引入的另一个block方法可以让你轻松将真实物理世界中的弹性效果集成进视图动画中。苹果公司一直建议开发者尽可能将动画效果做的跟真实物理世界一样——在视图滑动时,...

2018-05-21 17:25:46

阅读数:16

评论数:0

iOS-UIView坐标系转换-convertRect toview

iOS-- UIView中的坐标转换 // 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值 - (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view; // 将像素point从view...

2018-05-21 14:45:48

阅读数:37

评论数:0

Swift UILabel UIView等切半角或圆角遇到的问题

项目中遇到一个小小的问题,给一个UIView的左上和右上角分别添加圆角,其他角不动。本来是写个方法传入角度和要切的哪个角就行了/// 部分圆角 /// - Parameters: /// - corners: 需要实现为圆角的角,可传入多个 /// - radii:...

2018-05-18 18:06:18

阅读数:29

评论数:0

Swift mutating 关键字的使用

使用 mutating 关键字修饰方法是为了能在该方法中修改 struct 或是 enum 的变量首先,先定义一个protocolprotocol ExampleProtocol { var simpleDescription: String { get } mutating fu...

2018-05-11 16:42:42

阅读数:13

评论数:0

OC调用Swift方法

第一步:创建桥接文件第二步:配置桥接文件第三步:创建pch文件并配置其路径 第四步:在pch文件中导入如下头文件,注意:import "xxx-Swift.h",这里的xxx就是第二步中的Module name, 注意不要写错了  第五步:OC中直接调用Swif...

2018-05-02 15:31:57

阅读数:64

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭