- 博客(37)
- 收藏
- 关注
原创 Runloop应用实例
AFNetworkingAFURLConnectionOperation 这个类是基于 NSURLConnection 构建的,其希望能在后台线程接收 Delegate 回调。为此 AFNetworking 单独创建了一个线程,并在这个线程中启动了一个 RunLoop:123456789
2016-04-10 16:52:18
371
原创 C函数
ABS(a-b) 绝对值函数pow(a, 2) a的二次方atan(0.3) 反正切函数cos(2) 余弦值sin(3.4)正弦值后续 待补充。。。。。
2016-04-08 16:57:15
267
转载 iOS开发- 蓝牙后台接收数据(BLE4.0)
最近在做一个蓝牙相关的项目, 需要在应用进入后台, 或者手机属于锁屏状态的情况下, 仍然保持蓝牙连接, 并且能正常接收数据。本来以后会很麻烦, 但是学习了下..发现就2步而已。简单的不能再简单了。好了。下面是具体实现办法。1.在xxx-info.plist文件中, 新建一行 Required background modes , 加入下面两项。App shar
2016-03-16 11:51:01
428
原创 相册权限 第一次安装、用户是否授权
void (^allowEvent)() = ^{ UIImagePickerControllerSourceType sourceType; sourceType = UIImagePickerControllerSourceTypePhotoLibrary; UIImagePickerController *picker = [
2016-03-07 13:35:53
402
转载 使用免费的产品搭建直播系统
使用免费的产品搭建直播系统 上述方案的不足就是Helix的产品只有试用版。想用正版就得花钱。 1. 学习资料 使用VLC+mediastreamsegmenter+apache搭建HTTP Live Streaming系统: http://www.unmht.org/memo/en_ipod_stream.html
2016-03-06 15:59:47
464
转载 搭建HTTP Live Streaming直播系统
最近,需要将苹果的HTTP Live Streaming系统搭建起来。完全没有头绪,故第一步就是学习。一、学习资料官网资料1. http://developer.apple.com/resources/http-streaming/具体的搭建方案 使用segmenter将现成的视频文件分割,并生成列表文件。1. http://blog.csdn.n
2016-03-06 15:40:22
770
转载 HTTP Live Streaming直播(iOS直播)技术分析与实现
本文转载自:http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html不经意间发现,大半年没写博客了,自觉汗颜。实则2012后半年,家中的事一样接着一样发生,实在是没有时间。快过年了,总算忙里偷闲,把最近的一些技术成果,总结成了文章,与大家分享。 前些日子,也是项目需要,花了一些时间研究了HTTP
2016-03-06 13:51:36
329
原创 HLS视频直播
HTTP Live Streaming (HLS)苹果官方对于视频直播服务提出了 HLS 解决方案,该方案主要适用范围在于:使用 iPhone 、iPod touch、 iPad 以及 Apple TV 进行流媒体直播功能。(MAC 也能用)不使用特殊的服务软件进行流媒体直播。需要通过加密和鉴定(authentication)的视频点播服务。首先,需要大家先对 HLS 的概
2016-03-06 13:30:21
984
转载 CocoaPods版本升级
和往常一样使用CocoaPods管理一个基于FMDB的项目类库命令行执行$ pod install[!] The 'master' repo requires CocoaPods 0.32.1 - 失败,提示需要CocoaPods 0.32.1版本查看CocoaPods版本$ pod --version0.29.0确实需要更新了命令行更新(安装)步骤
2016-03-04 23:12:32
233
转载 项目管理:CocoaPods建立私有仓库
CocoaPods是iOS,Mac下优秀的第三方包管理工具,类似于java的maven,给我们项目管理带来了极大的方便。个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开源库一样在CocoaPods中管理它们,那么通过私有仓库来管理就很必要。对于CocoaPods还不太熟悉的,建议参考一下唐巧的博客或者直接到CocoaPods的官网看看:https:
2016-03-04 11:30:22
459
转载 cocospod 安装和使用
一 ruby 安装 要安装coocspod 首先需要安装ruby,可以先安装xcode,在安装macport 下载地址,最后执行命令 port install ruby二、安装CocoaPods1、安装CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。幸运的是OS X系统默认的已经可以运行Ruby了,因此我们只需要执行以下命令:
2016-03-04 10:55:27
379
原创 sqlite加密
一直使用sqlite来管理本地的数据,但是Xcode中的SDK中集成的sqlite是免费的,不提供加密模块,但是程序中用到的很多数据,有时候是不想让别人看到,一开始虑修改sqlite的源码,自己重新编译sqlite生成一个带加密模块的静态库,找了一下相关资料,需要修改源码中的makefile和自己实现加密算法等东西,折腾了一下,无果,就果断放弃了。此路不通,那就想别的办法来实现加密功能:现在找到3
2016-03-02 23:21:36
561
转载 套接字
源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。区分不同应用程序进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。Socket原意是 “插座”。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连
2016-03-02 10:50:55
250
原创 socket的心跳包机制
网络中的接收和发送数据都是使用操作系统中的SOCKET进行实现。但是如果此套接字已经断开,那发送数据和接收数据的时候就一定会有问题。可是如何判断这个套接字是否还可以使用呢?这个就需要在系统中创建心跳机制。其实TCP中已经为我们实现了一个叫做心跳的机制。如果你设置了心跳,那TCP就会在一定的时间(比如你设置的是3秒钟)内发送你设置的次数的心跳(比如说2次),并且此信息不会影响你自己定义的协议。所谓“
2016-03-02 10:13:25
725
原创 iOS开发必备HUD(透明指示层)
iOS开发必备HUD(透明指示层)字数421 阅读2123 评论1 喜欢511.MBProgressHUDGitHub地址:https://github.com/jdg/MBProgressHUD基本上看到的主流iOS应用都集成了这个,Star 7k了,最近看到很多应用HUD隐藏时,有一个动画过程,我还以为是自己扩展的,后来研究才发现,有这个属性animationT
2016-03-02 00:12:36
585
原创 iOS 第一次安装应用,拒绝相机调用,页面卡死的解决方案
void (^allowBlock)() = ^{ UIImagePickerController *imagePicker = [[UIImagePickerControlleralloc] init]; imagePicker.delegate = self; imagePicker.allowsEditing =
2016-03-02 00:03:37
948
原创 UINavigationController侧滑滑动返回 卡死问题
UINavigationController滑动返回,有需要的朋友可以参考下。最近做了UINavigationController的滑动返回(IOS7及以后系统默认支持的), 主要分成以下几步以及碰到的问题, 我这里做个总结:*.首先说明个普遍碰到的问题 网上普遍看到说, 在UINavigationController下自定义leftBarButtonItem会导致滑动失效
2016-02-29 16:08:26
1477
转载 iOS 判断相机权限是否被限制,判断相机是否可以使用
判断相机权限是否被限制需要导入 AVFoundation 类[objc] view plain copy#import [objc] view plain copy// iOS 判断应用是否有使用相机的权限 NSString *mediaTyp
2016-02-28 11:21:39
564
原创 ios tabbar 文字位置
[nav.tabBarItemsetTitlePositionAdjustment:UIOffsetMake(0, -4)];
2016-02-26 09:19:14
1020
转载 libsqlite3.dylib找不到
Xcode7中 Link Binary With Libraries 没有 .dylib库,只能找到对应的 .tbd,但不能代替使用,通过查找资料,尝试后得到以下两种解决方法。方法1. (heqin测试可行)在项目Target中的Link Binary With Libraries 手动添加 首先点击 “+” 显示搜索添加页面,在这里如果搜索之前的libsqlite3.dylib是
2016-02-25 18:09:46
1205
转载 HTTP状态码
完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用reque
2016-02-18 13:57:11
261
转载 NSData NSDate NSString NSArray NSDictionary 相互转换
// NSData NSDate NSString NSArray NSDictionary json NSString *string = @"hello word"; NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; NSArray *array = [NSArray arrayWithObjects:
2016-02-18 09:14:25
225
原创 NSDictionary to jsonString || 对象转json格式
-(NSString*)DataTOjsonString:(id)object{ NSString *jsonString = nil; NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object
2016-02-18 09:11:49
224
转载 git 上传本地文件到github
git 上传本地文件到github1 git config --global user.name "Your Real Name" 2 git config --global user.email you@email.addressgit initgit add .git commit -m 'Test'git remote add origin git@gi
2016-02-17 11:40:28
223
原创 NSAssert用法
今天突然发现了一个开发ios程序时调试的好帮手—NSAssert()函数。而且和NSLog()函数一样简单易用,代码如下: NSAssert(x!=0,@”x must not be zero”);在表达式“x!=0”不成立时,程序就会抛出异常,并显示自定义的消息”x must not be zero”,并同时显示出错的文件、代码和调用函数等信息,是一个程序追踪的很好手段。假设x!=0
2016-02-16 11:41:52
247
转载 深入理解GCD(一)
虽然 GCD 已经出现过一段时间了,但不是每个人都明了其主要内容。这是可以理解的;并发一直很棘手,而 GCD 是基于 C 的 API ,它们就像一组尖锐的棱角戳进 Objective-C 的平滑世界。我们将分两个部分的教程来深入学习 GCD 。在这两部分的系列中,第一个部分的将解释 GCD 是做什么的,并从许多基本的 GCD 函数中找出几个来展示。在第二部分,你将学到几个 GCD 提供的高
2016-02-16 11:20:14
386
原创 ug-Assertion failure in [MyClass layoutSublayersOfLayer:]
这是在iOS7上,tableview 的sectionHeaderView中报错*** Assertion failure in -[****.****UITVSectionHeader_Team layoutSublayersOfLayer:], /SourceCache/UIKit/UIKit-2935.137/UIView.m:8794libc++abi.dylib: ter
2016-02-01 14:34:57
275
原创 深入理解block
2010年WWDC发布iOS4时Apple对Objective-C进行了一次重要的升级:支持Block。说到底这东西就是闭包,其他高级语音例如Java和C++已有支持,第一次使用Block感觉满简单好用的,但是慢慢也遇到很多坑。本文聊聊ARC和non-ARC下Block使用中的引用循环问题,最近遇到了好几次这种问题,还是深入记录下。先来套题目热热身,貌似能够全部答对的人蛮少的Block实现
2015-12-27 20:42:25
329
转载 深拷贝和浅拷贝
iOS 集合的深复制与浅复制Archives iOS如果您觉得我的博客对您有帮助,请通过关注我的新浪微博 MicroCai 支持我,谢谢!概念对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针;深复制是直接拷贝整个对象内存到另一块内存中。一图以蔽之再简单些说:浅复制就是指针拷贝;
2015-12-13 20:48:04
251
转载 strong和copy的区别
问题描述在定义一个类的property时候,为property选择strong还是copy特别注意和研究明白的,如果property是NSString或者NSArray及其子类的时候,最好选择使用copy属性修饰。为什么呢?这是为了防止赋值给它的是可变的数据,如果可变的数据发生了变化,那么该property也会发生变化。代码示例还是结合代码来说明这个情况@interfa
2015-12-13 20:03:24
305
原创 xib托线出来的为什么是weak而不是strong
因为控件他爹( view.superview )已经揪着它的小辫了( strong reference ),你( viewController )眼瞅着( weak reference )就好了。当然,如果你想在 view 从 superview 里面 remove 掉之后还继续持有的话,还是要用 strong 的( 你也揪着它的小辫, 这样如果他爹松手了它也跑不了 )。
2015-12-13 19:50:32
370
原创 iOS 序列化与反序列化
开篇1到底这个序列化有啥作用?面向对象的程序在运行的时候会创建一个复杂的对象图,经常要以二进制的方法序列化这个对象图,这个过程叫做Archiving. 二进制流可以通过网络或写入文件中(来源于某教材的一段话)本人的理解是当你于写数据需要本地存储时,即将你的数据写到硬盘上的时候,你就必须对他进行序列化,转换成二进制文件,从而便于在磁盘上的读写,同理在取出的时候必须将其在反序列
2015-04-03 16:56:47
306
原创 iOS开发- 蓝牙后台接收数据(BLE4.0)
最近在做一个蓝牙相关的项目, 需要在应用进入后台, 或者手机属于锁屏状态的情况下, 仍然保持蓝牙连接, 并且能正常接收数据。本来以后会很麻烦, 但是学习了下..发现就2步而已。简单的不能再简单了。好了。下面是具体实现办法。1.在xxx-info.plist文件中, 新建一行 Required background modes , 加入下面两项。
2015-04-02 16:34:51
622
原创 iOS开发拓展篇-XMPP简单介绍
一、即时通讯简单介绍1、简单说明即时通讯技术(IM)支持用户在线实时交谈。如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容有许多的IM系统,如AOL IM、Yahoo IM、 MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那
2015-04-02 16:32:55
270
原创 OS开发拓展篇—应用之间的跳转和数据传
iOS开发拓展篇—应用之间的跳转和数据传说明:本文介绍app如何打开另一个app,并且传递数据。一、简单说明新建两个应用,分别为应用A和应用B.实现要求:在appA的页面中点击对应的按钮,能够打开appB这个应用。1.新建两个应用,分别为A和B. 2.设置应用B的url。3.在应用A中编写打开app的代码点
2015-04-01 11:46:45
298
原创 iOS身份证的正则验证
在ios项目的开发中可能很多地方都需要用到身份证校验,一般在开发的时候很多人都是直接百度去网上荡相关的正则表达式和校验代码,但是网上疯狂粘贴复制的校验代码本身也可能并不准确,可能会有风险,比如2013年1月1号起停止使用15位的身份证,网上的身份证校验普遍支持15位的号码。在开发过程中,进行类似处理的时候,还是需要一些甄别的能力的,当然也要考虑自己的项目的实际情况。该文贴出了最近项目中使用到得身份
2015-04-01 11:44:55
545
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人