- 博客(50)
- 收藏
- 关注
原创 Objective-C之run loop详解
Objective-C之run loop详解 做了一年多的IOS开发,对IOS和Objective-C深层次的了解还十分有限,大多还停留在会用API的级别,这是件挺可悲的事情。想学好一门语言还是需要深层次的了解它,这样才能在使用的时候得心应手,出现各种怪异的问题时不至于不知所措。废话少说,进入今天的正题。不知道大家有没有想过这个问题,一个应用开始运行以后放在那里,如果不对它
2016-02-25 12:27:52
298
原创 SOCket和UDP和TCP的区别
1. UDPUDP是一种不可靠的网络协议。(qq用的是这个协议)UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是I
2016-02-24 22:45:17
671
原创 关于iOS六大基本设计模式
iOS,系统框架为应用程序提供了最重要的基础设施,在大多数情况下,只能通过系统框架来调用底层的硬件。反过来,框架也使用了很多特别的设计模式,iOS开发应用程序前,必须要了解它的六大基本设计模式。 (1)Model-View-Controller,即模型-视图-控制器模式,是iOS程序的主要构架,将您的代码分割为几个独立的部分。模型部分定义应用程序的数据引擎,负责维护数据的完整性;视图
2016-02-17 12:47:27
389
原创 (ios开发)lldb命令常用
lldb命令常用假如你准备在模拟器里面运行这个,你可以在“(lldb)”提示的后面输入下面的:(lldb) po $eaxLLDB在xcode4.3或者之后的版本里面是默认的调试器。假如你正在使用老一点版本的xcode的话,你又GDB调试器。他们有一些基本的相同的命令,因此假如你的xcode使用的是“(gdb)”提示,而不是“(lldb)”提示的话,你也能够更随一起做,而没
2016-02-15 11:01:13
494
原创 音视频
1.录音 NSString*path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject]; path = [path stringByAppendingPathComponent:@"123.M
2015-12-01 18:42:58
313
原创 二维码扫描,真机
#import"ViewController.h"#import //1.有个素材@interfaceViewController ()AVCaptureMetadataOutputObjectsDelegate>//2.输入设备 采集摄像头捕捉到信息@property(nonatomic,strong)AVCaptu
2015-12-01 18:41:40
588
原创 iOS9 通讯录(无界面的和有界面的)
iOS9 通讯录(有界面)- (void)touchesBegan:(NSSetUITouch*> *)touches withEvent:(UIEvent*)event{ //不用授权 //展示界面 CNContactPickerViewController *picker = [[CNContactPickerView
2015-12-01 18:37:38
429
原创 通讯录(有界面的和无界面的)
通讯录(有界面)- (void)touchesBegan:(NSSetUITouch*> *)touches withEvent:(UIEvent*)event{ //1.创建通讯录联系人控制器 ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavi
2015-12-01 18:35:57
414
原创 二维码生成
1.创建滤镜 2.设置默认3.设置内容4.设置图片5.设置图片原比例变大8,86.设置图片信息- (void)touchesBegan:(NSSetUITouch*> *)touches withEvent:(UIEvent*)event{ //https://www.baidu.com //创建滤镜
2015-12-01 18:33:22
236
原创 运行时 #import <objc/runtime.h>
一.实现runtime字典转模型 1.定义字典 2.定义模型属性 3.定义个长整型来接受模型的属性的个数 count 4.定义属性列表ivar 5.for循环遍历进行给模型属性赋值 6.转换成OC字符串 7. 截取字符串从第一个字符串 开始截取 8.进行KVC给模型赋值 //遍历属性 , //底层 runtime
2015-11-25 00:24:35
1124
原创 swift笔记2
1.构照方法子类构照 2. 在Person类重写了init构照方法然后进行添加属性以及赋值3.然后创建一个Student类继承Person类然后进行调用Person的构照方法来添加属性4.然后调用子类进行赋值代码如下:/*构造函数: 分配内存空间 设置初始值 ()在swift中 所有的构造方法 都是init
2015-11-22 15:38:11
221
原创 Swift笔记
一 . 开发中 推荐使用 let 因为let 更加安全,等需要修改的时候,再改成varlet: 表示常量 一经赋值 就不能被修改,不可变var: 表示变量 可变在swift 中 数据的类型就是自动推导 根据 ‘=‘ 右边 来确定数据的具体类型swift 是一个类型校验 非常严格的语言整数默认类型是 Int long 小数的默认类型 是 D
2015-11-22 15:37:19
246
原创 自定义Operation
自定义一个Operationstart用来检查代码下载main继承他们的父类-(void)start{ NSLog(@"%s %@",__func__,[NSThreadcurrentThread]); [super start];}使用代理-(void)main{ NSLog(@"%s %
2015-11-22 15:36:38
317
原创 内购广告换肤/KVO/KVC
KVC,即是指 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性。KVO 就是基于 KVC 实现的关键技术之一。 1.KVC:间接访问对象属性 监听属性变化 2.1 KVO:1.保存所有参数 监听着,枚举,携带参数,路径 2.2 创建之类NSKVONotifying_CZPerson 重写
2015-11-22 15:31:54
394
原创 源代码管理和git 使用
#pragma mark -一.静态库#pragma mark 1.创建.a静态库1. 创建应该选择Framework一栏--> static2. 默认编译后(真机/模拟器分别运行)只会输入,自带的.h,不会输出新建类的.h3. 应该选择项目--> Build Phases --> Copy file -->添加.h即可#pr
2015-11-22 15:31:09
252
原创 UIStactView 新特性语法新介绍
* 新控件UIStackView 栈视图,类似AppleWatch的Group* 父类: UIView* 特点:1. 只能垂直或水平散列,因此不能完全取代Autolayout2. 能够快速的按顺序取到子控件3.批量修改间距更快4.批量改变对齐方式更快 应用场景tabar//连线一个stactView
2015-11-22 15:30:22
263
原创 地图定位
定位定不出来的解决方案:1.没有strong2.没有配置plist3.模拟器BUG 切换模拟器--------------------------------------------------------------------------- 一次定位(掌握)1.创建位置管理器2.手动请求授权3.requestWhenInUseAu
2015-11-22 15:29:38
313
原创 POST
XCode 7 新增加的百分号转义urlString = [urlStringstringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSetURLQueryAllowedCharacterSet]]; 重点:1,单个文件上传(四个步骤) 2.请求体格式{ 为什么要上
2015-11-22 15:28:56
250
原创 NSURLSession/AFN框架知识点
/*------------------------------------- 01 NSURLSession ---------------------------------------*/重点:1.NSURLSession的使用2.熟练掌握NSURLSession{ 1> NSURLSession简介: { NSURLSession
2015-11-22 15:28:04
682
原创 ASI和AFN的区别(面试题)
一.底层实现1>AFN的底层基于OC NSURLConnection和NSURLSession2.ASI的底层基于纯C语言的CFNetwork框架3.ASI的运行性能高于AFN二,对服务器返回数据处理1>ASI没有直接提供对服务器数据处理的方式,直接返回data\string2>AFN提供了多种对服务器数据处理的方式1.J
2015-11-22 15:26:53
634
原创 AFN框架须知笔记
AFHTTPRequestOperationManager对NSURLConnection的封装2.AFHTPSessionManager对NSURLSession的封装二、AFHTTPRequestOperationManager的具体使用1.创建管理者AFHTTPRequestOperationManager *mgr = [
2015-11-22 15:26:08
298
原创 指纹识别&钥匙串访问
//获得当前设备的系统版本号 float version = [[UIDevicecurrentDevice]systemVersion].floatValue; NSLog(@"%f",version); if (version 8.0) { NSLog(@"请升级至最新系统!");
2015-11-22 15:23:25
423
1
原创 token值
HTTP请求是短连接:服务器处理一次请求之后,就会断开连接!用户登录成功!服务器如何判断用户当前是否处于登录状态?服务器使用token值来判断当前用户的登录状态太(移动端)token :登录令牌!一个长字符串:用户的唯一标示当用户登录成功之后,会在服务器生成一个 token 值;服务器会把这个token值响应给客户端,并且将token 值保存在数据中!
2015-11-22 15:22:16
1926
原创 HTTP请求
HTTP协议:超文本传输协议(Hypertext Transfer Protocol){ http协议规定了客户端和服务器之间的数据传输格式 http协议是在网络开发中最常用的协议,不管是在移动客户端还是PC端,访问网络资源经常使用http协议http优点简单快速: https 协议简单,通信速度很快
2015-11-22 15:20:52
197
原创 socket底层代码
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event{ NSLog(@"touchesBegan"); // Socket代码! // 1.创建客户端Socket // 2.创建服务器Socket // 3.连接两
2015-11-22 15:19:48
272
原创 网络编程scoket
NSURL 统一资源定位符就是在整个互联网中只会有这一个资源 // 1. url-》 确定要访问的资源 // 提示:很多大公司都会提供一个 m开头的主机,为手机服务 NSURL *url = [NSURLURLWithString:@"http://m.baidu.com"]; // 3.发送网络连接,获取服务器返
2015-11-22 15:09:24
398
原创 NSOperation+网络图片
想看代码去找加载网络图片 解决图片加载不上报错问题,,因为http网络请求太不安全,苹果改成了https 在info.plist文件更改NSAppTransportSecurityNSAllowsArbitraryLoads1. Capacity容量,假设指定容量10,arrayWithCapacity 会直接开辟10的内存空间2.当add o
2015-11-22 15:08:54
202
原创 运行循环
运行循环 - 负责所有事情的监听模式决定了事件的级别1.重要概念1. 保证应用程序不退出2. 监听所有的事件3.如果没有事件发生,运行循环会进入休眠状态,等到事件发生后 重新启动4.子线程的运行循环默认是不启动的5.主线程的运行循环默认是开启的NSDefaultRunLoopMode 时
2015-11-22 15:06:54
263
原创 SDWebImage 第三方框架
1.IOS著名的牛逼网络图片处理框架2.包含的功能:图片下载,图片缓存,下载进度监听,gif处理等等3.用法极其简单,功能十分强大,大大提高了网络图片处理的效率4.国内超过90%的ios项目都有她的影子SDWebImage常见面试题1.问题: 1> 图片文件缓存的时间有多长 答案: 一周2.SDWebIma
2015-11-22 15:06:24
262
原创 多线程 NSOperation
苹果文档:– removeDependency: 删除指定的依赖关系 NSOperation 是另一个”并发技术”,程序员不需要关心,,并发技术 不是多线程NSOperation - 核心概念:把操作(异步)添加到队列(全局的并发队列)! - 主队列 mainQueue - OC的框架 更加面
2015-11-22 15:05:48
222
原创 多线程 GCD
CGD 全称 Grand Central Dispatch;1.全局队列异步执行- (void)demfor{ //全局队列负责调度任务的 dispatch_queue_tp = dispatch_get_global_queue(0,0); // 2. 任务 使用block 来包装任务 //
2015-11-22 15:04:57
251
原创 多线程 NSTread
1.耗时操作MARk - 耗时操作[NSTread currenThread]:当前线程通常用来开发调试过程中 可以用来判断是否是主线程number = 1 就是主线程number != 1 就是子线程 不要纠结数字,只要不是1 就是子线程 具体数组,程序员不能决定代码:耗时的操作:- (void)longOperatiion { for
2015-11-22 15:03:50
394
原创 单列的演练
特点:1.内存中只有唯一一个副本2.提供一个全局的访问点->类方法能够方便访问目前学过的单列:- UIApplication- NSFileManager- NSUseDefaults- NSNotifcationCenter;在iOS 开发中,开发的使用非常频繁,公司面试要求手写单列#import@i
2015-11-22 15:02:30
259
原创 多线程 下载网络图片主线程实现
1.加载视图层次结构的方法 1.LoadView的方法用纯代码开发的时候 简历视图层次结构, 与 Storard &Xib 是等价的一旦实现了此方法,SB&XIB无效- (void)loadView{ _scrllView= [[UIScrollViewalloc]init]; _scrllView.backgroundCo
2015-11-22 15:01:43
377
原创 在Storyboard实现国际化语言和代码实现国际化语言
1.简单布局一下2.第一个添加语言支持然后把English勾上和刚才一样 中文写中文那 英文写英文二代码实现国际化语言创建文件- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)e
2015-11-22 15:00:21
355
原创 国际化语言
1.首先第一步创建文件重点::InfoPlist.strings 名字必须和这个一样2.此时会出现两个 全部勾上3.显示真的key 因为在infoplist文件显示的都不是真的key4.把哪个key 赋值过来 写在英文当中5.在此之前得添加语言支持6.这时
2015-11-22 14:59:34
218
原创 layer的核心动画的基本属性
CALayer的简单介绍1.UIView是calyer的代理2. 简单介绍、简单介绍在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动
2015-11-22 14:58:44
537
原创 UI事件处理:手势处理
1响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”UIApplication、UIViewController、UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件2.UIResponderUIResponder内部提供了以下方法来
2015-11-22 14:57:40
267
原创 Quart2D绘图 绘制imageView的笔记
一.绘制文字 // Drawing code // 文字 NSString* str =@"传智播客iOS十九期"; NSShadow* s = [[NSShadowalloc]init];//阴影 s.shadowOffset= CGSizeZero;//偏移量的大小 s.shadowBl
2015-11-22 14:56:08
296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人