- 博客(39)
- 收藏
- 关注
原创 block
这是唐巧对于block的介绍:http://blog.devtang.com/2013/07/28/a-look-inside-blocks/block跟似乎C语言的函数指针是一样的,但是两者仍然存在以下区别:block的代码是内联的,效率高于函数调用block对于外部变量默认是只读属性block被Objective-C看成是对象处理 循环引用block
2017-01-10 09:36:20
322
原创 NSURLSession
POST和GET的区别就在于request,所以使用session的POST请求和GET过程是一样的,区别就在于对request的处理.NSURLSessionConfiguration简单地说,就是session的配置信息.如:NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaul
2017-01-06 10:38:17
264
原创 tableView
iOS8 , 自动计算Cell高度// 告诉tableView的真实高度是自动计算的,根据你的约束来计算self.tableView.rowHeight = UITableViewAutomaticDimension;// 告诉tableView所有cell的估计行高self.tableView.estimatedRowHeight = 44
2017-01-06 10:29:57
603
原创 FMDB
FMDB是iOS平台的SQLite数据库框架。FMDB以OC的方式封装了SQLite的C语言API项目中使用 ARC 还是 MRC,对使用 FMDB 都没有任何影响,FMDB 会在编译项目时自动匹配。在 FMDB 中有三个重要的类:FMDatabase:是一个提供 SQLite 数据库的类,用于执行 SQL 语句。FMResultSet:用在 FMDatabase 中执
2017-01-06 10:26:36
388
原创 电子科大杨宁TCPIP协议原理(总结)
本博文总结于电子科大杨宁TCPIP协议原理。视频地址:http://v.ku6.com/playlist/index_1735229.html 。反正我没看完,以下是我的总结。第一章1.1协议和标准协议:一组控制数据通信的规划。三要素:语法syntax、语义semantics、同步Timing (what、how、when)标准(standard):一致同意的规划。
2016-12-10 14:47:04
3248
原创 传输控件协议TCP
本篇博文总结于《计算机网络》。特点:面向连接的运输层协议;可靠交付;提供全双工通信;面向字节流。TCP连接的端点叫做套接字(socket)socket = (IP地址:端口号 )TCP报文段的首部格式 TCP可靠传输的实现滑动窗口,以字节为单位;超时重传时间的选择;选择确认SACK;TCP的流量控制利用
2016-12-10 14:37:54
455
原创 用户数据报协议UDP
本篇博文总结于《计算机网络》。概述:UDP只在IP的数据报服务之上增加了很少一点的功能,就是复用和公用的功能以及差错检测的功能。特点:无连接;尽最大努力付,不保证可靠交付;面向报文。首部格式:由四个字段组成,每个字段的长度都是两个字节。源端口:源端口号。在需要对方回信时选用,不需要时可用全0;目的端口:目的端口号。这在终点交付报文时必须要使用到。长度:UDP用户数据报的
2016-12-03 13:39:11
1403
原创 加密算法
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth 2.0一、RSA1、随机两个不相等的质数p和q;2、欧拉函数: φ(n) = (p-1)(q-1);3、随机选择一个整数e,条件是14、计算e对于φ(n)的模反元素d,"模反元素"就是指有一个整数d,可以使得ed被φ(n)除的余数为1ed - 1
2016-09-30 15:40:06
263
原创 Git使用
一、github1、在终端获取sshssh-keygen -C 'your@email.address' -t rss前往文件夹,用记事本拷贝2、登录github,进入setting,点击左边的SSH keys,粘贴SSH key,然后ADD key。验证是否成功,$ ssh -T git@github.com3、设置用户信息$ git config --global
2016-09-30 15:38:34
228
原创 控件篇
textFrildplaceholder颜色[self.pwd setValue:[UIColor colorWithWhite:1 alpha:.5] forKeyPath:@"_placeholderLabel.textColor"];空字符不可点击enablesReturnKeyAutomatically label行距NSMutab
2016-09-30 14:48:10
325
原创 设计模式
MVP把viewController 当成view,负责UI布局,而Presenter负责更新View的数据和状态。优点:测试性强,使而测试大多数业务逻辑变得简单。任务均摊,最主要的任务划分到Presenter和Model,而view的功能较少。缺点:代码量是MVC模式的2倍。MVVM: 利用双向绑定技术,使得Model变化时,ViewModel会自
2016-09-30 14:36:19
202
原创 巧招大杂会
ARC与MRC互转ARC项目添加MRC标记(-fno-objc-arc)MRC项目添加ARC标记(-fobjc-arc)获取UUIDNSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];宏定义:区分设备与模拟器#if TARGET_
2016-09-30 14:27:49
398
原创 CAAnimation 总结
核心动画中所有类都遵守CAMediaTiming协议。CAAnaimation是个抽象类,不具备动画效果,必须用它的子类才有动画效果。CAAnimationGroup和CATransition才有动画效果,CAAnimationGroup是个动画组,可以同时进行缩放,旋转(同时进行多个动画)。CATransition是转场动画,界面之间跳转(切换)都可以用转场动画。
2016-09-30 14:20:23
457
原创 RunLoop
最近学习到一位技术大牛的关于RunLoop的知识(博客地址:http://blog.ibireme.com/2015/05/18/runloop/ ),做了以下总结:RunLoop 的概念function loop() { initialize(); do { var message = get_next_message(); pro
2016-09-30 14:08:40
194
原创 Runtime
typedef struct objc_ivar *Ivar; struct objc_ivar { char *ivar_name OBJC2_UNAVAILABLE; // 变量名 char *ivar_type OBJC2_UNAVAILABLE; // 变量类型
2016-09-30 11:20:09
289
转载 调用系统打电话发短信接口以及程序内发短信
一、调用系统功能在iOS中打开系统本身的打电话和发短信功能还是比较简单的,之前在SSO中也提了一嘴,iOS中可以由一个应用打开另一个应用,只需要一行代码,打电话,发短信,发email,开网页也是一样的 ,只是用的协议不一样。1.打电话这个还是比较简单的,下面是打电话的代码:%@的内容是手机号self.myApplication是Application的单例。
2016-06-21 15:14:03
1781
转载 Xcode添加静态库以及编译选项配置常见问题
一,Xcode编译出现Link错误,出现"duplicate symbols for architecture i386 clang"提示.问题:链接时,项目有重名文件.解决:根据错误提示,做如下检查:1.Taraget->Build Settings->Link Binary With Libraries检查是否有重复lib.2.全工程搜索下重名文件,决定如何删除.二
2016-05-23 22:43:54
1301
转载 iOS获取设备信息总结
1、获取设备的信息[objc] view plain copy UIDevice *device = [[UIDevice alloc] int]; NSString *name = device.name; //获取设备所有者的名称 NSString *model = device.name; //获取设备的类
2016-04-14 10:42:46
464
转载 CoreAnimation动画入门(总结)
一.动画的基础分类1.png上述我们可以看到动画大体可以分为如下几类:属性说明CAAnaimation抽象类,不具备动画效果,必须用它的子类才有动画效果CAAnimaitionGroup动画组,可以同时进行缩放,旋转CAPropertyAnimation抽象类,本身不具备动画效果,只有子类才有CABasicAnim
2016-03-30 11:57:34
387
转载 iOSCoreAnimation动画系列教程(二):CAKeyFrameAnimation
在上一篇专题文章【原】iOSCoreAnimation动画系列教程(一):CABasicAnimation【包会】中我们学习了iOS核心动画CoreAnimation中CABasicAnimation动画的使用方法。CABasicAnimation已经可以应付一些比较简单的应用场景了,比如view的平移出现、淡入淡出等。但是在有些情况下直线的运动并不能满足我们的需要,因此有必要学习进阶版的核心动画
2016-03-30 11:46:43
232
转载 iOSCoreAnimation动画系列教程(一):CABasicAnimation
在iOS中,图形可分为以下几个层次:越上层,封装程度越高,动画实现越简洁越简单,但是自由度越低;反之亦然。本文着重介绍Core Animation层的基本动画实现方案。在iOS中,展示动画可以类比于显示生活中的“拍电影”。拍电影有三大要素:演员+剧本+开拍,概念类比如下:演员--->CALayer,规定电影的主角是谁剧本--->CAAnimation,规定电影该怎
2016-03-30 11:36:22
289
转载 将项目设置为MRC
在 xcode 中,设置 ARC 与 MRC 的地方:选中 Target, 在 Objective C language 地方,将 ARC 设为 YES 或 NO。 这是一个总开关。 如有特别的文件, 可以单独加上开关。 如何在未使用arc的工程中引入一个使用了arc特性的文件:选中工程->TARGETS->相
2016-03-15 21:00:20
472
转载 NSPredicate
简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。定义(最常用到的方法):[cpp] view plain copyNSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...];
2016-03-15 09:40:25
185
转载 二维码自定义扫描界面
本次内容的效果图.h文件#import "RootViewController.h"@interface SQCodeViewController : RootViewController//继承根视图,主要继承根视图的导航控制器@end.m文件#import "
2016-03-11 10:17:05
949
转载 扫描二维码
#import"BZViewController.h"#import @interfaceBZViewController ()AVCaptureMetadataOutputObjectsDelegate>@property(strong,nonatomic)AVCaptureDevice*device;@property(strong,nona
2016-03-11 10:16:39
480
转载 生成二维码
1、通过字符串生成CIImage(首先是二维码的生成,使用CIFilter很简单,直接传入生成二维码的字符串即可:)- (CIImage*)createQRForString:(NSString*)qrString { NSData *stringData = [qrString dataUsingEncoding:NSUTF8StringEncodin
2016-03-11 10:15:39
532
原创 iOS 掌握知识点
一、基础知识点1、内存管理2、category3、protocol4、block5、KVC/KVO二、核心技术1、字母索引 (百度云demo)2、地图 (百度云demo)3、音频4、蓝牙5、动画6、数据存储7、多线程8、相机9、coreImage 滤镜处理三、实用第三方1、上下拉刷新 (百度云demo)2、FMDB (
2016-03-10 18:18:03
320
原创 cocoaPods 安装与使用
1. 更新ruby终端输入如下命令(把Ruby镜像指向taobao,避免被墙,你懂得)gem sources --remove https://rubygems.org/ gem sources -a https://ruby.taobao.org/ gem sources -l (用来检查使用替换镜像位置成功2、下载安装CocoaPods终端输入:sudo gem in
2016-03-10 17:26:20
342
转载 项目的完整重命名方法图文教程
前言:在iOS开发中,有时候想改一下项目的名字,都会遇到很多麻烦。直接改项目名吧,XCODE又不会帮你改所有的名字。总是有很多文件、文件夹或者是项目设置的项。而且都是不能随便改的,有时候改着改着,编译不了。所以各位重命名项目时,记得先备份好一份噢。本文我会介绍一种方法,是我自己参考了很多资料得出的总结。为什么说是完整呢?因为改名之后,你不会再看到任何有关于之前的项目名字。本文会把一
2016-03-10 17:25:42
2342
原创 iOS9请求https问题
iOS9 开始苹果将HTTP全改为HTTPS了,所以出现网络请求失败问题,解决办法:1、改回HTTP: 在info.plist文件中添加一个Key:NSAppTransportSecurity(字典类型),然后给它添加一个Key:NSAllowsArbitraryLoads(Boolean型),属性值设为YES.如下图:
2016-03-10 17:23:23
666
转载 文件操作(NSFileManager)
iOS的沙盒机制,应用只能访问自己应用目录下的文件。iOS不像android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。Library包含Caches、Preferences目录。 上面的完整路
2016-03-10 17:22:34
233
转载 创建Pch预编译文件
在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。是一个预编译文件。 首先说一下pch的作用:1.存放一些全局的宏(整个项目中都用得上的宏)2.用来包含一些全部的头文件(整个项目中都用
2016-03-10 17:20:54
357
转载 sizeThatFits and sizeToFit是UIView的两个方法
- (CGSize)sizeThatFits:(CGSize)size; 作用:return 'best' size to fit given size. does not actually resize view. Default is return existing view size - (void)sizeToFit; 作用: calls sizeThatF
2016-03-10 17:19:47
311
转载 Emoji 表情
开发表情键盘的思路 为了实现跨平台,无论iOS端,andorid端,都要有一个相同的标准,这个标准就可以是国际Unicode编码,我们的思路是将表情文字进行unicode编码后再进行传输,因此,有两中方式,一种是通过自定义一套表情切图,将其与unicode码一一对应,在转码的时候,我们一一遍历,转换成unicode后进行传输,这样的好处是我们可以保证所有平台所能使用的表情
2016-02-23 20:10:06
648
转载 AFMWorking 网络监听
//网络状态 typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { AFNetworkReachabilityStatusUnknown = -1,//未识别的网络 AFNetworkReachabilityStatusNotReachable =
2016-02-23 15:40:41
277
转载 判断文本是否有Emoji表情
@implementation NSString (Emoji)+ (BOOL)stringContainsEmoji:(NSString *)string{ __block BOOL returnValue = NO; [string enumerateSubstringsInRange:NSMakeRange(0, [string length]) optio
2016-02-21 14:23:48
360
转载 8.0系统 UISearchController 使用
UISearchController实现搜索UISeachBar通过UISearchDisplayDelegate实现上面的效果是没有问题的,网上也有很多类似的实现效果,不过是警告的,信息如下: 'searchDisplayController' is deprecated: first deprecated in iOS 8.0,这么明显一个警告总不能视而不见吧 , 在 StackOve
2016-02-03 17:26:59
373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人