- 博客(96)
- 资源 (7)
- 收藏
- 关注
原创 面试常问的Runloop和Runtime基础
一:Runloop不知道大家有没有想过这个问题,一个应用开始运行以后放在那里,如果不对它进行任何操作,这个应用就像静止了一样,不会自发的有任何动作发生,但是如果我们点击界面上的一个按钮,这个时候就会有对应的按钮响应事件发生。给我们的感觉就像应用一直处于随时待命的状态,在没人操作的时候它一直在休息,在让它干活的时候,它就能立刻响应。其实,这就是run loop的功劳。线程与run loop...
2018-02-08 16:00:54
1585
原创 关于Objective-C中的@property以及属性分析
前言:关于@property可能你每天都在使用,然而@property真正意义以及里面的属性内容是很多人容易忽略的地方。重要的事情说三遍,这是重点重点重点。一:@property到底是什么?@Property是声明属性的语法,它可以快速方便的为实例变量创建存取器,并允许我们通过点语法使用存取器。 存取器(accessor):指用于获取和设置实例变量的方法。用于获取实例变量值的存取器是getter,
2017-10-16 14:48:43
749
原创 iOS工厂模式的实质性总结
最近在公司搞分享活动,索性就分享了工厂模式这个看似大家都不重视的设计模式。实际上开发过程中用到的场景不少啊。经过初步的了解和认识工厂之后,再去你们公司项目工程里面看看代码,肯定有不少之处用到了工厂模式。然而想用到如火纯青,还需要我们不断的练习。这篇文章目的不是让你立马都可以使用这个模式,而是能够在思想上有一种工厂模式的意识。
2017-08-17 18:11:43
1891
原创 Realm数据库增删查改,加密以及其他相关特性
Realm使用方法及相关特性最近接触到Realm数据库,经过几天研究感觉Realm就是为速度而生的!在保证了ACID的要求下,很多设计都是以速度为主。当然,Realm 最核心的理念就是对象驱动,这是 Realm 的核心原则。Realm 本质上是一个嵌入式数据库,但是它也是看待数据的另一种方式。它用另一种角度来重新看待移动应用中的模型和业务逻辑。下面是使用方法以及一些特性1. 创建数据库- (vo
2016-12-02 14:33:13
4896
原创 iOS dealloc 不执行或延迟执行的问题
1)不执行dealloc1.查看是不是循环引用造成的类不销毁2.调用其他类的时候查看有没有将本类中的对象传过去,例如self,self.tableview 传的时候注意使用weak,不要使用strong 否则会造成当前类无法释放,dealloc不执行一直占用内存3.performSelector 关于内存管理的执行原理是这样的执行 [self performSelector:@select
2016-06-21 21:51:45
1671
原创 正则表达式总结
验证数字:^[0-9]*验证n位的数字:\dn 验证n位的数字:^\d{n} 验证至少n位数字:^\d{n,}验证m−n位的数字:\dm,n 验证m-n位的数字:^\d{m,n}验证数字和小数点:^[0-9]+([.]{0}|[.]{1}[0-9]+)验证零和非零开头的数字:(0|[1−9][0−9]∗) 验证零和非零开头的数字:^(0|[1-9][0-9]*) 验证有两位小数的正实
2016-06-21 21:49:19
347
原创 App store 下载软件失败的解决办法总结
1: 可以尝试改DNS,比如改成8.8.8.8 或者114.114.114.114, 很可能解决. 背后原理不清楚2: 打开Terminal 输入defaults write com.apple.appstore ShowDebugMenu -bool true 打开Mac AppStore的调试模式,清空Cookies或Reset Application重置一下程序即可。3: 关机
2016-06-21 21:45:46
7287
原创 iOS开发中解决滑动页面时候卡顿掉帧问题
在开发中我们常常会遇到布局比较复杂的cell,在滑动的时候会导致界面不流畅,出现卡顿的现象,这是由于CPU计算和GPU渲染,之间未及时交换数据丢失帧导致的结果。imageView尽量设置为不透明opque尽量设置为YES当imageView的opque设置为YES的时候其alpha的属性就会无效,imageView的半透明取决于其图片半透明或者imageView本身的背景色合成的图层view是半
2016-06-07 16:22:13
10402
原创 iOS音频处理技术-TAAE
TAAE(The Amazing Audio Engine)是一个开源的音频应用开发框架,专门针对iOS系统。它能够自动混合多种音频信号,提供复杂的多通道音频输入支持,详细记录系统输出信息,进行应用内会话监控等。TAAE由“Audiobus”的开发者Michael Tyson参与完成。Audiobus是一款音频处理应用,它就像是一根虚拟连接线,将一个个原本独立的音乐应用连接起来,起到很好的串联作用。
2016-06-06 15:02:16
1371
原创 iOS音频技术的研究-音频格式
**什么是音频格式**这个问题我也是查了很久才弄明白的。音频格式其实是指容器的类型,在通俗一点就是声音文件的类型,比如说“我爱你中国.mp3”,这个声音文件的音频格式就是MP3。 这里稍微引入一些音频编码的东西。很多第一次涉及这个领域的(比如说我哈),很容易弄不清音频格式和音频编码的区别和联系,比如音频格式中有MP3格式,音频编码中有MP3编码,这时候多数人就不明白了。 音频编码本质是一种算法,
2016-06-06 13:48:40
7078
原创 iOS开发--UIWebview与H5之间的交互
随着互联网产业的发展,在移动开发的过程中原生与H5的混合开发在移动开发中占据着越来越重要的地位。下面介绍开发中的一些心得 1: 将HTML页面加载到UIWebview控件中: A:本地加载: NSString *webPath = [[NSBundlemainBundle]pathForResource:@“HelloWord"ofType:@"html”];//获取文件路
2015-12-01 15:58:51
3226
翻译 IOS 如何选择delegate、Notification、KVO?
在网上看到一个博客上详细的分析了三者之间的区别以及各自的优势,博文地址为http://blog.shinetech.com/2011/06/14/delegation-notification-and-observation/,因为博文是用英文写的,下面将其翻译成中文。 在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信。在IOS应
2015-11-04 11:01:00
574
转载 iOS开发 实现QQ第三方登录
现在大多数App在登录时候都会有第三方登录,如QQ,微信,微博等,如下面的截图下面我们主要讲一下qq的第三方登陆如何实现首先,到官网注册:一,下载SDK下载SDK 地址:http://wiki.open.qq.com/wiki/mobile/SDK 一定要下载最新版本的iOS_SDK 二,SDK的目录结构 下载的文件结构如下 --------------------------
2015-11-03 19:45:22
1660
原创 支付宝框架集成 使用步骤
第三方支付的流程实现支付宝支付的准备工作 1.向支付宝”签约” 成为支付宝的”商户” ,签约完成后,支付宝会提供一些必要的数据给我们(商户ID-partner,帐号ID-支付宝帐号) •签约需要营业执照2.获取支付相关的’私钥’和 ‘密钥’ –> 数据安全?3.下载支付的SDK4:生成订单信息5:调用支付宝客户端,由支付宝客户端跟支付宝安全服务器打交道6:支付完毕后返回支付结果给商户客户端和服
2015-11-02 16:28:23
924
原创 iOS App审核被拒的解决经历
2014年2月初开始,Apple开始拒绝采集IDFA(identifier for advertising)而未集成任何广告服务的应用进入AppStore。 为解决此问题,一般的SDK都为用户提供两个版本的SDK,包括采集IDFA的标准版和不采集IDFA的无IDFA版。1、程序有重大bug,程序不能启动,或者中途退出。 2、绕过苹果的付费渠道,我们之前游戏里的用兑换码兑换金币。 3、游戏里有实
2015-11-02 16:25:38
4162
原创 多线程(GCD,socket,http.TCP,UDP,block)
1.线程是什么?进程是什么?二者有什么区别和联系? 线程是CPU独立运行和独立调度的基本单位(可以理解为一个进程中执行的代码片段),进程是资源分配的基本单位(进程是一块包含了某些资源的内存区域)。 进程是线程的容器,真正完成代码执行的是线程,而进程则作为线程的执行环境。 一个程序至少包含一个进程,一个进程至少包含一个线程,一个进程中的多个线程共享当前进程所拥有的资源。2
2015-11-02 16:24:15
1183
原创 CoreData
Core Data数据持久化是对SQLite的一个升级,它是ios集成的,在说Core Data之前,我们先说说在CoreData中使用的几个类。(1)NSManagedObjectModel(被管理的对象模型) 相当于实体,不过它包含 了实体间的关系(2)NSManagedObjectContext(被管理的对象上下文) 操作实际内容 作用:插入数据 查询 更新
2015-11-02 16:21:00
1842
原创 iOS瀑布流三种实现思路总结
瀑布流介绍瀑布流可以在保证图片原始比例的情况下,灵活的展现内容,相对于传统的使用相同大小的网格展现大量图片,效果上要好上很多,而实现瀑布流的方式有很多种,网上比较流行的有三种实现方式。 1,使用UIScrollView,主要技术点在于视图的重用。 2,使用UITableView,这种方式应该是最易想到的,因为需要展现几列就用几个tabelview就ok了,而且不需要考虑重用,因为苹果已经做好了,
2015-10-31 10:14:41
4804
原创 __Block和__Weak的区别
__Block1.__block对象在block中是可以被修改、重新赋值的。 如果修改局部变量,需要加__block __block int multiplier = 7; int (^myBlock)(int) = ^(int num) { multiplier ++;//这样就可以了 return num * multiplier; };2
2015-10-30 19:52:26
666
原创 3DTouch Demo
Demo下载链接: http://pan.baidu.com/s/1hqKxIx2 密码: kgfp创建一个新的工程 配置info.plist文件 如下图 在 AppDelegate.h文件里面#import <UIKit/UIKit.h>@interface AppDelegate : UIResponder <UIApplicationDelegate>@property (stron
2015-10-29 19:45:33
677
原创 iOS9 3DTouch开发 知识点详解
本篇文章介绍3D Touch功能, 大体介绍一下: 下篇为大家提供一个3DTouch的Demo增强版的Force Touch(压力触控)技术,Force Touch之前被应用在于Apple Watch根据力度的不同,从而带来更多样化的用户体验。比如,用力按快进按钮会使快进的速度更快、用力度触摸代替了长按拖拽选项、用力按屏幕时用户可以自行调节应用界面等在点击、滑动、缩放的基础上,为iPhone
2015-10-29 19:35:47
1349
原创 静态库的创建与使用
什么是库?库是程序代码的集合,是共享程序代码的一种方式根据源代码的公开情况,库可以分为2种类型开源库公开源代码,能看到具体实现比如SDWebImage、AFNetworking闭源库不公开源代码,是经过编译后的二进制文件,看不到具体实现主要分为:静态库、动态库 01. 为什么要做静态库1> 国内的企业,掌握有核心技术,同时是又希望更多的程序员来使用其技术,因此采用”闭源”的方式开发
2015-10-29 15:40:55
596
原创 Masonry — 代码约束
Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X。Masonry是一个非常优秀的autolayout库 能够节省大量的开发和学习时间Masonry支持的一些属性// 左侧@property (nonatomic, strong, readonly) MASConstraint *left
2015-10-29 15:30:16
550
原创 iOS开发 -- 百度地图api的使用
百度地图api http://developer.baidu.com/map/index.php?title=iossdk/guide/key下载百度iOS地图SDK 下载framework形式静态库申请密钥 申请步骤上面链接有详细解释 获取密钥 然后配置开发环境 注意:一般配置的framework所支持的架构同时支持真机和模拟器使用,然后把xcode里的文件一个.m文件改为.mm文件
2015-10-23 19:01:00
878
原创 iOS开发 -- 利用dispatch_once创建单例
在开发中我们会用到NSNotificationCenter、NSFileManager等,获取他们的实例通过[NSNotificationCenter defaultCenter]和[NSFileManager defaultManager]来获取,其实这就是单例。 函数void dispatch_once( dispatch_once_t *predicate, dispatch_block_
2015-10-23 18:57:01
390
原创 iOS开发 -- 懒加载
1.懒加载基本懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其get方法.注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化2.使用懒加载的好处:(1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 (2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合
2015-10-23 18:55:56
437
原创 iOS开发 -- main.m文件解析
#import <UIKit/UIKit.h>#import "AppDelegate.h"int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
2015-10-23 18:54:36
1061
原创 iOS开发 -- SVN的使用
1: 安装好CorneStone 打开 2:然后进入 svnchina.com 注册账号 3:创建项目 添加成员之后 会生成项目SVN地址 4:然后到Cornerstone 5: 点击第二个 + 号 到下面这个页面 iOS9用HTTPS 之前的用HTTP 然后把复制的SVN项目地址复制到 Sever 然后回车 出现弹窗,点击DisCard Change 然后填写N
2015-10-23 18:52:16
1052
原创 问题--[__NSCFNumber length]: unrecognized selector sent to instance 0x8b3c310’ - andy_shen
程序运行出现这个错误 : ‘NSInvalidArgumentException’, reason: ‘-[__NSCFNumber length]: unrecognized selector sent to instance 0x8b3c310’ 一般的原因是 字段类型写错了 导致字典转模型时候出现了上述错误比如 或者进行数据转化 就行了
2015-10-23 18:49:36
762
原创 问题— 修改AFNetworking源文件可接收text/plain的方法
在使用AFNetworking的时候可能会碰到下面的错误:{ status code: 200, headers {"Content-Length" = 14;"Content-Type" = "text/plain;charset=utf-8";Date = "Thu, 22 May 2014 10:37:50 GMT";Server = "Apache-Coyote/1.1";"Set-Cook
2015-10-23 18:48:03
474
原创 iOS开发 -- CocoaPods安装和使用步骤(详解)
http://my.oschina.net/w11h22j33/blog/206129CocoaPods是什么?当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用 它,必须得另外下载其他类库,而其他类库又用到其他类库,这也许是比较特殊的情况。总之意思就是,手动一个个去下载所需类库 十
2015-09-21 21:31:06
574
转载 iOS网络解析 -- AFNetworking2.5使用
原文地址:http://blog.youkuaiyun.com/daiyelang/article/details/384340231.检测网络状态+ (void)netWorkStatus{ /** AFNetworkReachabilityStatusUnknown = -1, // 未知 AFNetworkReachabilityStatusNotReac
2015-09-21 18:53:19
484
原创 iOS开发 -- UICollectionView(集合视图)
UICollectionView 是一个新型的展示数据的视图,他和TableView一样 使用起来一样 都需要设置dataSource 和 delegate 只不过collectionView对应cell的设置比较复杂 可以实现很炫的效果注意:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
2015-09-21 08:34:44
971
原创 Xcode7 模拟器无法联网问题
新装的Xcode7 编译程序出现 #warning: 获取app配置信息失败: The resource could not be loaded because the App Transport Security原因是这次苹果加大安全的管控,将以往HTTP协议强制改为HTTPS协议,以后的APP应该都是了,根本解决办法 改协议,临时解决 在Info.plist中添加 N
2015-09-21 08:31:17
3149
转载 iOS开发 -- WebSocket 通信(一)
这一篇我们先了解一下基本知识,这样对我们后面的学习更加有帮助 。 Socket,WebSocket,Http,Tcp等这些我们已经听的耳朵有茧了,但是用得时候还是复习一下吧。 大学学习网络基础的时候老师讲过,网络由下往上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而H
2015-09-16 19:45:21
776
原创 iOS开发 -- MRC和ARC混合编程
ARC工程中也可以使MRC的类 方法如下:在targets的build phases选项下Compile Sources下选择要不使用arc编译的文件,双击它,输入 -fno-objc-arc 即可MRC工程中也可以使用ARC的类 方法如下:在targets的build phases选项下Compile Sources下选择要使用arc编译的文件,双击它,输入 -f
2015-09-14 15:51:34
574
原创 iOS开发 -- GET 和 POST请求(同步异步链接)
HTTP : 是应用层的网络传输协议,对于http的请求方式 包括两种:GET 和 POST , 链接方式也包括两种 同步链接 和 异步链接 GET 和 POST 请求的区别: 1:GET请求 : 服务器的地址 和 请求参数都会出现在请求接口中,也就是说 服务器地址和请求参数共同组成了请求借口, 然而POST请求,请求参数不会出现在请求接口中,而是作为请求体提交给服务器. 2:因为GET
2015-09-14 12:56:19
643
原创 iOS开发 -- 数据库(增删改查)
先为数据库建立一个数据库操作类 数据库操作类 只是为我们提供两个功能 打开数据库和关闭数据库 想要使用SQLite需要进行两步操作: 1:导入动态连接库, libsqlite3.0.dylib 2: 引⼊ #import "DataBaseHandle.h"static sqlite3 *sqlite = nil;@implementation DataBaseHandle//对于应用
2015-09-11 08:55:54
479
原创 iOS开发 -- 数据库
大型数据库:1:SQLServer 只能在windows下使用,配置繁琐2: My SQL 适用于网页 3: Oracle 商业类的数据库 , 可以跨平台, 有ISO认证SQLite 小型,轻量,微型数据库每个表单只有一个主键其他的都不是主键 不允许为空SQLite:创建表CREATE TABLE "main"."Stud
2015-09-11 08:52:39
453
原创 IOS之数据持久化 (简单对象写入文件)
写入和读取//写入- (IBAction)wirteBT:(id)sender { //获取字符串 NSString *str1 = _ONRTF.text; NSString *str2 = _TWOTF.text; //获取documents文件路径 NSString *documentsPath = [NSSearchPathForDirectories
2015-09-10 08:50:49
1002
iOS打包上传速度贼快的版本(Application Loader)
2018-11-16
iOS 简单工厂模式(四则运算)demo + 工厂模式资料。
2017-08-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人