- 博客(37)
- 收藏
- 关注
原创 HTTP协议详细介绍
HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于19...
2018-03-21 15:23:14 271
原创 iOS蓝牙开发学习笔记(六)作为Peripheral端的最佳方式
https://developer.apple.com/library/prerelease/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/BestPracticesForSettingUpYourIOSDeviceAsAPeripheral/BestPracticesForSetting...
2018-03-19 16:56:53 601
原创 iOS蓝牙开发学习笔记(五)与peripheral通信的最佳实践
https://developer.apple.com/library/prerelease/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/BestPracticesForInteractingWithARemotePeripheralDevice/BestPracticesForInte...
2018-03-19 16:52:02 876
原创 iOS蓝牙开发学习笔记(四)ios蓝牙应用的后台处理
https://developer.apple.com/library/prerelease/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsIn...
2018-03-19 16:47:43 1760
原创 iOS蓝牙开发学习笔记(三)peripheral角色的实现
https://developer.apple.com/library/prerelease/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/PerformingCommonPeripheralRoleTasks/PerformingCommonPeripheralRoleTasks.htm...
2018-03-19 16:00:18 613
原创 iOS蓝牙开发学习笔记(二)central角色的实现
https://developer.apple.com/library/prerelease/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/PerformingCommonCentralRoleTasks/PerformingCommonCentralRoleTasks.html#//ap...
2018-03-19 15:16:28 545
原创 iOS蓝牙开发学习笔记(一)蓝牙概述
https://developer.apple.com/library/prerelease/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothOverview/CoreBluetoothOverview.html#//apple_ref/doc/uid/TP4001...
2018-03-19 14:07:57 496
原创 runtime为类目扩展属性
通过类目,为类扩展属性和方法,当然直接扩展属性是不行,得用到runtime,File ---> New --> File...-->Objective-C File 定义一个类目;首先导入 #import 这样就可以扩展属性了
2016-06-29 18:18:54 525
原创 NSString为什么用copy
官方SDK,对NSString属性的定义都是用copy,而不是retain,其实原因就是怕你赋值的是一个NSMutableString,而NSMutableString是可变的,如果是retain,那么当你在外面改变这个值的时候,你的属性的值也就变了;//用copy时通过上图可以看出用copy时,name这个属性是没有改变的。。//用retain时
2015-12-27 10:57:23 580
原创 防止Block的循环引用(技巧)
weakSelf是为了block不持有self,避免循环引用,而再声明一个self是因为一旦进入block执行,就不允许self在这个执行过程中释放。block执行完后这个self会自动释放,没有循环引用问题。
2015-12-21 11:16:49 508
转载 iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
概览随着移动互联网的发展,如今的手机早已不是打电话、发短信那么简单了,播放音乐、视频、录音、拍照等都是很常用的功能。在iOS中对于多媒体的支持是非常强大的,无论是音视频播放、录制,还是对麦克风、摄像头的操作都提供了多套API。在今天的文章中将会对这些内容进行一一介绍:音频音效音乐音频会话录音音频队列服务视频MPMoviePlayerControllerMPMov
2015-06-27 15:32:00 1195
原创 KVO底层实现原理
KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相对的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常无须增加额外代码即可使用,这是怎么实现的呢?其实就是通过OC强大的运行时(runtime)实现的。当你第一次观察某个对象时,runtime会创建一个新的继承原先class的subclass。在这个新的
2015-05-29 13:42:11 1696
原创 公钥与私钥 详谈
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必须发送邮件的两人都有公钥和
2015-05-15 09:14:47 898 1
转载 IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
(1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/(2)根据实际情况,引入相关的库,参考官方文档。(3)在项目的AppDelegate中一般情况下有三个操作,第一是注册ShareSDK,第二是注册各个平台的账号,第三是关于微信等应用的回调处理。// // AppDelegate.m
2015-05-12 15:08:05 772
转载 UICollectionView详解
什么是UICollectionViewUICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式)。如果你用过iBooks的话,可能你还对书架布局有一定印象:一个虚拟书架上放着你下载和购买的各类图书,整齐排列。其实这就是一个UICollectionView的表现形式,或者iPad
2015-05-11 14:07:28 446
原创 runtime运行机制
runtime是实现机制是什么?一般用于干什么?下面笔者就分享给大家了,有什么不足之处,希望大家指点建议。runtime 是一套比较底层的纯C语言的API,属于一个C语言库,包含了很多底层C语言的API。在我们平常写的oc代码中,程序运行的过程中,最终转变成runtime的C语言代码,runtime是OC的幕后工作者,比如说:下面一个创建对象的方法中OC:per
2015-05-09 09:53:15 1029
原创 ios第三方支付流程
现在不少app内都集成了支付宝功能,因此对于iOS开发人员来说,也应该熟悉第三方支付关于安全支付的流程,支付宝的文档里有个很好的图数据流程使用支付宝进行一个完整的支付功能,大致有以下步骤:与支付宝签约,获得商户ID(partner)和账号ID(seller)下载相应的公钥私钥文件(加密签名用)下载支付宝
2015-05-08 11:55:07 2623
转载 CATransform3D详解
关于图层的几个坐标系。对于ios来说,坐标系的(0,0)点在左上角,就是越往下,Y值越大。越往右,X值越大。一个图层的frame,它是position,bounds,anchorPoint和transform属性的一部分。设置一个新的frame将会相应的改变图层的position和bounds,但是frame本身并没有保存。position:是一个CGP
2015-04-27 22:49:55 730
转载 堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两
2015-04-13 22:59:52 3951 2
转载 UIView和CALayer的区别 说的比较清楚了
如果这篇帖子能够给出每个代码中所带来的页面效果 就更好理解了 以后我自己写之类的介绍可以从中吸取教训记录园子里的一篇有关CALayer与UIView的关系CALayer属于Core Animation部分的内容,比较重要而不太好理解。以下是园子中看到的一篇文章的摘录:1. UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由Cor
2015-04-13 22:55:17 576
原创 IOS开发之三级控制器的使用与自定义标签工具栏
三级控制器的概念:UITabBarController- ->(管理) UINavigationController -->(管理) UIViewController下面笔者就分享一下三级控制器的使用#import "MainTabbarController.h"#import "ProfileViewController.h"#import "GroupViewCon
2015-04-12 10:44:47 4006 1
原创 Xcode6后手动添加.pch文件,与其常遇到的问题
在Xcode6之前,创建一个新工程Xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。是一个预编译文件。Xcode6后就不会自动创建了,需要手动创建。其作用:1.存放一些全局的宏(整个项目中都用得上的宏)2.用来包含一些全部的头文件(整个项目
2015-04-07 09:18:29 4312 5
原创 Mac 和 Xcode的一些快捷键
下面是笔者总结的一些快捷键,分享给大家了:Xcode中的快捷键1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT + W: 关闭文件2. 编辑CMD + [: 左缩进CMD + ]:
2015-04-05 15:43:52 4723 1
转载 iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
图像:1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存。可对图片进行缩放等操作。 下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,除此以外也有一
2015-04-05 15:25:31 46809 1
原创 IOS开发之Quartz2D绘图
//自定义绘制图形,调用drawRect方法- (void)drawRect:(CGRect)rect { //首先拿到上下文 CGContextRef context = UIGraphicsGetCurrentContext();// [self drawLine:context];}#pragma mark -
2015-04-04 10:02:37 1453 2
原创 IOS触摸与手势
一:触摸//触摸开始- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ //UITouch的常用属性 UITouch *touch = [touches anyObject]; //点击的次数 NSLog(@"tap count: %ld", touch
2015-04-03 21:20:04 1575 2
原创 IOS开发音频与视频
音频与视频的简单用法:使用音频的时候需要导入#import @interface ViewController (){ AVPlayer *player; }@end@implementation ViewController- (void)viewDidLoad { [super
2015-04-02 21:35:52 1742 1
转载 URLSession
一、URL Session的基本概念1.三种工作模式:默认会话模式(default):工作模式类似于原来的NSURLConnection,使用的是基于磁盘缓存的持久化策略,使用用户keychain中保存的证书进行认证授权。瞬时会话模式(ephemeral):该模式不使用磁盘保存任何数据。所有和会话相关的caches,证书,cookies等都被保存在RAM中,因此当程序使会话
2015-04-02 14:10:13 3790 1
原创 IOS开发之SQLite
SQLite 是一款开源嵌入式文件型数据库,这个主要是和其他一些C/S架构的关系型数据库比较而来的,比如MySQL等.说他是嵌入式,因为SQLite的所有功能全部包装在一个dll中,我们只需要使用其中的导出接口就可以操作SQLite数据库,这样使得数据存储功能能够很方便的集成进用户的程序中,并运行在客户程序的进程空间中说他是文件型,因为SQLite的数据库文件就是一个独立文件(SQ
2015-04-02 13:14:55 943 3
原创 IOS开发之Block语法
Block是IOS4.0之后新增的一种语法结构,也称为闭包(closure)。类似于C语言的函数指针。Block是对象与对象的之间的通信方式。与代理一样也是一对一的传值方式。注意:1.使用block引用局部变量,会被当做是常量,添加__block修饰符,才可以修改2.block引用局部对象,会retain该对象3.block里引用全局变量,会把全
2015-04-02 11:14:04 1324 2
原创 IOS开发之多线程与GCD
线程的执行 :下图明显可以看出,如果不开启多线程的话,程序先走runA方法在走runB,然后再回到runA,再走runC ,A-->B-->C。如果runA在加载网络请求(比如加载图片),这样的话就会阻塞主线程,也就是说先加载完图片在走下面的方法,比如runC是一个点击事件,图片还没加载出来的时候,点击事件是不响应的,这需要什么方法取解决呢?这就得开启多线程了。
2015-04-02 11:11:32 3147 1
原创 IOS开发之UICollectionView
什么是UICollectionView?UICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView。如果你用过iBooks的话,可能你还对书架布局有一定印象:一个虚拟书架上放着你下载和购买的各类图书,整齐排列。其实这就是一个UICollectionView的表现形式,或者iPad的iOS6中的原生时钟应用中的各个时钟,下图如果用tableVi
2015-04-02 11:09:57 737 1
原创 IOS中常用的四种数据持久化方法
(1)属性列表:简单 ,只能适用于小数据量(2)对象归档:加密, 保存的方式是序列化,只能适用于小数据量(3)SQLite:SQLite可移植性好,很容易使用,很小,高效而且可靠。(4)CoraData :Core Data本质上是使用SQLite保存数据,但是它不需要编写任何SQL语句。1.属性列表:容器对象——>property list将数组保存到沙盒路径下2
2015-04-02 11:02:23 1408 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人