- 博客(28)
- 资源 (3)
- 收藏
- 关注
原创 Swift_学习笔记_类型转换
类型转换是指任意两个对象之间相互转换。这些类型可以是通过集成的父子关系,也可以是协议的耦合关系,甚至可以是任意类型之间的转换。1、子类的对象赋值为基类// 原型类class Entity{ var name = "" init(entityName:String) { self.name = entityName } func showTag()
2017-08-31 16:33:55 373
原创 Swift_学习笔记_协议
协议:代理设计模式协议能够被类、枚举、结构体实现,满足协议要求的类、枚举、结构体被称为协议的是实现者。协议的语法在类、枚举、结构体的名称后加上协议名称,中间以冒号(:)分隔,即可实现协议,当实现多个协议时,多个协议间用逗号(,)隔开。 eg. class 类名:协议1,协议n{}如果类含有父类,则应当将父类放在所有的协议之前。 eg. class 类名:父类,协议1,协议n
2017-08-31 14:50:20 290
原创 Swift_学习笔记_自动引用计数
Swift使用的自动引用技术ARC(Automatic Reference Count)这一机制来跟踪和管理程序的内存使用状况。Swift的ARC机制只是对于基于引用计数的对象采有效,对于基于值拷贝的,比如struct、enum是无效的。Swift提供了两种方法解决循环强引用问题:弱引用(weak reference)和无主引用(unowned reference)。对于生命周期内会变为nil
2017-08-29 16:28:16 466
原创 iOS_Runtime6_字典转化为模型应用
在<objc/runtime.h>中,我们通过Class的结构体内容,可以看到ivars指针指向包含了类中成员变量的结构体,通过它可以得到类中定义的成员变量,而Objective-C中提供了相应的API方法。
2017-08-22 20:16:02 382
原创 iOS_Runtime5_消息转发
当消息接受者,未找到对应的方法实现的时候,经过一系列的方法跳转,可以让消息接受者调用其他的已实现的方法,也可以改变消息接受者,以及消息接受者调用的方法。
2017-08-22 17:15:09 542
原创 iOS_Runtime4_动态添加属性
Runtime动态添加属性,主要是为系统的类写分类,并且属性定义变量,可以不写策略,需要手动实现set以及get方法。在set方法中可以利用runtime实现动态添加属性。在get方法中可以利用runtime实现属性值的获取。为UIImage的类目添加属性imageUrl使用代码示例:// UIImage+Image.h@interface UIImage (Image)@property
2017-08-22 15:29:43 402
原创 iOS_Runtime3_动态添加方法
当调用一个未实现的对象方法,或者说发送未知的消息给接收者时候,消息的接受者会调用+ (BOOL)resolveInstanceMethod:(SEL)sel;当调用一个未实现的类方法,或者说发送未知的消息给接收者时候,消息的接受者会调用+ (BOOL)resolveClassMethod:(SEL)sel;任何一个方法默认都有两个隐式参数(id self, SEL _cmd),其中self指代调
2017-08-22 11:14:52 347
原创 iOS_Runtime2_方法交换
利用Runtime实现的方法交换,主要是为了修改系统的方法实现。Objective-C 提供了一下API用于动态替换类方法或者实例方法的实现: class_replaceMethod 替换类方法的定义 method_exchangeImplementations 交换两个方法的实现 method_setImplementation 设置一个方法的实现
2017-08-22 10:19:14 483
转载 ReactNative_布局
react 宽度基于pt为单位, 可以通过Dimensions 来获取宽高,PixelRatio 获取密度。基于flex的布局view默认宽度为100%水平居中用alignItems, 垂直居中用justifyContent基于flex能够实现现有的网格系统需求,且网格能够各种嵌套无bug图片布局通过Image.resizeMode来适配图片布局,包括contain, cover, stre
2017-08-15 21:33:49 278
原创 iOS_UIViewAnimation
UIView Animation动画包含:大小动画(frame)-(void)changeFrame{ CGRect originalRect = self.anView.frame; CGRect rect = CGRectMake(self.anView.frame.origin.x-20, self.anView.frame.origin.y-120, 160, 80);
2017-08-15 21:31:09 334
原创 iOS_多线程
程序:每一个应用程序App都称为一个程序。进程:正在运行的一个应用程序就是一个进程,相当于一个任务,进程拥有全部的资源,负责资源的调度和分配。线程:线程就是程序中一个单独的代码块(单独的功能)。主线程:每个正在运行的程(即进程)序,至少包含一个线程,这个线程就叫做主线程。子线程:iOS允许用户自己开辟新的线程,相对于主线程而言,这些新的线程都可以称为子线程。注意:子线程与主线程是独立的运行
2017-08-15 21:20:30 446
原创 iOS_Runtime1_消息发送机制
Runtime是运行时机制,是一套纯C的代码库,是OC的幕后工作者,整个OC的底层,我们编写的OC代码,在程序运行的时候,都经过Runtime机制转译成了C语言代码。
2017-08-15 20:59:55 639
原创 iOS_远程推送(iOS10)_UNNotificationContentExtension
UNNotificationContentExtension简介UNNotificationContentExtension这个类,也是iOS10推送的新特性,官方文档用这么一句话,简单的解释了一下,Presents a custom interface for a delivered local or remote notification.(当你收到远程或者本地通知的时候,弹出一个自定义界面)
2017-08-12 17:20:16 1797
原创 iOS_远程推送(iOS10)_UNNotificationServiceExtension
UNNotificationServiceExtension简介UNNotificationServiceExtension是iOS10推出后的一个新特性。
2017-08-11 21:33:12 1857
原创 Swift_学习笔记_继承
继承是面向对象编程语言的最主要特征之一Swift只有单继承继承是类与结构体和枚举等类型最重要的区别Swift可以重写父类的方法和属性
2017-08-10 17:21:02 569
原创 Swift_学习笔记_控制语句和函数
控制语句分支结构if语句switch语句区间匹配var age = 1000switch age {case 0...3: print("3岁以下儿童")case 3...12: print("童年")case 12...18: print("少年")case 18...200: print("成年")default: print("不可能还活着"
2017-08-08 15:15:34 406
原创 Swift_学习笔记_字符串、数组、字典
字符串转义字符\0(空字符)、\\(反斜扛)、\t(水平制表符)、\n(换行符)、\r(回车符)、\”(双引号)、\’(单引号)单字节Unicode标量,写成\u{nn},其中nn为两位十六进制数双字节Unicode标量,写成\u{nnnn},其中nnnn为四位十六进制数var ch = "\u{56}\u{5355}\t\u{9501}\nhello"print(ch)// 经过测试{
2017-08-08 14:17:04 447
原创 Swift_学习笔记_基础知识
常量和变量常量和变量的声明// 常量的声明let number = 5let string = "string"// 多个常量同时声明,中间用“,”隔开let num1 = 5, num2 = 5// 变量的声明var string1 = "string1"var num3 = 6 ,num4 = 6常量和变量的类型// 常量与变量的类型可以在声明时指定类型,如果在声明时没有指定,编译
2017-08-08 09:43:39 445
原创 iOS_NSPredicate的使用
在使用UISearchBar进行搜索时,我们会根据搜索框输入的内容,对数据进行过滤、提示。这个时候就需要使用NSPredicate,对输入的数据进行过滤。NSPredicate初始化Format后面的字符串格式要求NSPredicate的使用NSArray过滤判断字符串首字母是否为字母字符串替换截取字符串验证邮箱电话号码有效性
2017-08-07 15:26:46 393
原创 iOS_ UISearchBarDelegate
UISearchBar继承自UIView,为iOS中具有搜索功能的控件。 UISearchBar的使用与UITextView的使用方法类似, 经过测试,可以得UISearchBarDelegate 相关方法#pragma mark - UISearchBarDelegate
2017-08-07 14:23:15 374
原创 JavaScript_数组的增删等
unshift:在数组开头添加数据、返回数组长度var a = [1,2,3,4,5];var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7//注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。push:在数组末尾添加数据、改变原数
2017-08-03 15:17:03 300
原创 JavaScript_校验身份证号码
在银行业务进行中,校验身份证号码成为很普遍的要素。目前,大多是在移动端身份证号码格式的校验。 在进行身份证号格式时,主要校验长度、省份、生日、校验位身份证号码校验方法
2017-08-03 14:25:39 415
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人