- 博客(108)
- 资源 (3)
- 收藏
- 关注
转载 Xcode6.3 你不知道的事
最近在用Xcode 6.3写代码,一些涉及到对象的代码会报如下编译器警告:1Pointer is missing a nullability type specifier (__nonnull or __nullable)于是google了一下,发现这是Xcode 6.3的一个新特性,即nullabilit
2015-12-15 19:04:49
368
转载 Xcode7 你不知道的事
Lightweight Generics 轻量级泛型,轻量是因为这是个纯编译器的语法支持(llvm 7.0),和 Nullability 一样,没有借助任何 objc runtime 的升级,也就是说,这个新语法在 Xcode 7 上可以使用且完全向下兼容(更低的 iOS 版本)带泛型的容器这无疑是本次最重大的改进,有了泛型后终于可以指定容器类中对象的类型了:
2015-12-15 19:00:48
408
原创 如何实现左滑返回(2)
接上篇文章,相信大家实现简单的Push已经不再话下了把,那么上一篇是入门,这一篇将继续介绍如何实现手势返回。我们需要实现最重要的交互过程的类:UIPercentDrivenInteractiveTransition这里面的方法相信大家已经知道,最重要的3个方法:- (void)updateInteractiveTransition:(CGFloat)percentComplete;
2015-07-22 17:49:35
1000
原创 hittest 使用介绍,以及案例分析
首先介绍一下这个方法: hitTest:withEvent:调用过程iOS系统检测到手指触摸(Touch)操作时会将其放入当前活动Application的事件队列,UIApplication会从事件队列中取出触摸事件并传递给key window(当前接收用户事件的窗口)处理,window对象首先会使用hitTest:withEvent:方法寻找此次Touch操作初始点所
2015-07-20 18:21:19
1613
转载 IOS动画详解
iOS中的动画 Core Animation Core Animation是一组非常强大的动画处理API,使用它能做出非常绚丽的动画效果,而且往往是事半功倍,使用它需要添加QuartzCore .framework和引入对应的框架 .开发步骤: 1> 初始化一个动画对象(CAAnimation)并设置一些动画相关属性. 2> 添加动画
2015-07-20 17:19:16
471
转载 IOS动画详解
目录[-]iOS中的动画 Core AnimationCAAnimation:CAPropertyAnimation CAKeyframeAnimationCATransitionUIView动画Block动画UIImageView的帧动画UIActivityIndicatorViewiOS中的动画 Core A
2015-07-20 17:15:29
168
转载 详解HTTP
阅读目录什么是HTTP协议Web服务器,浏览器,代理服务器URL详解HTTP协议是无状态的HTTP消息的结构Get和Post方法的区别状态码HTTP Request headerHTTP Response headerHTTP协议是无状态的和Connection: keep-alive的区别 什么是HTTP协议 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵
2015-03-25 23:29:36
384
原创 面试总结和心得
1.由于一直做IOS,更面向于上层,所以底层或者更偏向于网络薄弱。或者是展现出了不自信。2.一直是使用网络层ios API的封装,后续会开一个系列详细的了解网络。3.对于未来,学习技术,不需要思考太多很远很远的事情,面临选择更应该果断。4.加油!以后有挑战也有更多的机会。
2015-03-24 09:16:05
454
原创 Block
首先,对于没有引用外部变量的Block,无论在ARC还是非ARC下,类型都是__NSGlobalBlock__,这种类型的block可以理解成一种全局的block,不需要考虑作用域问题。同时,对他进行Copy或者Retain操作也是无效的,比如这样一个返回Block的函数: typedef int(^MyBlock)(); MyBlock func() { return ^{ re
2015-03-11 16:20:04
394
原创 如何设置电池栏的隐藏和显示
IOS7以后增加了新的方法// These methods control the attributes of the status bar when this view controller is shown. They can be overridden in view controller subclasses to return the desired status bar attri
2015-03-05 16:06:33
933
原创 如何适配Arm64架构的 iosAPP
苹果在2014年10月20号发布了一条消息:从明年的二月一号开始,提交到App Store的应用必须支持64-bit。详细消息地址为:https://developer.apple.com/news/?id=10202014a那们我们应该如何开始着手让自己的App支持64-Bit呢?基本知识从iPhone 5S的A7 CPU开始到刚刚发布的iPhone 6(A8 CPU)都
2015-03-03 13:28:51
1070
转载 Instruments使用技巧
最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下。Instruments使用技巧关于Instruments官方有一个很有用的用户使用Guide,当然如果不习惯官方英文可以在这里找到中文本翻译版本PDF参阅.Instruments 确实是一个很强大的工具,用它来收集关于一个或多个系统进程的性能和行为的数据
2015-02-27 21:01:29
478
转载 coredata多表查询
在IOS CoreData中,多表查询上相对来说,没有SQL直观,但COREDATA的功能还是可以完成相关操作的。多表查询,表与表之间肯定存在某种关系,如果对于类似外连接,左连接等操作,在COREDATA中就显得无力(请高手指教了)。在上节中,介绍了一下数据库的关系查询操作。下面使用CoreData进行关系数据库的表与表之间的关系演示。生成COREDATA和如何设置
2015-02-18 23:09:55
496
原创 coreData 小知识
设置relationship的注意点关系名称必须首字母小写Apple建议每一个关系都创建一个反向关系(inverse)。没有反向关联的话会有一个数据库警告To-Many Relationship属性,代表着一对多的关系,一个实体可以关联多个。Delete Rule选项可以选择Cascade,实现级联删除,表示在使用Core Data删除表的一个对象时,与其关联的其他表的对象也将被一
2015-02-18 22:53:00
99
原创 coreData详解
大家好,此次是讲解的coreData这一块,其实平时一直用Sqlite3,所以很少接触啦,当然此次将依托最新的xcode6来讲解的。现在,我们新建一个工程的时候,就可以勾选use coreData,请睁大眼睛好好找找选项在哪里。如果我们勾选了coredata,我们的文件中出现了一个xcdatamodeld的文件。点击这个文件吧,看到下面的图片
2015-02-18 22:49:07
470
转载 NSTimer 实战
1. NSRunLoopCommonModes和Timer 当使用NSTimer的scheduledTimerWithTimeInterval方法时。事实上此时Timer会被加入到当前线程的Run Loop中,且模式是默认的NSDefaultRunLoopMode。而如果当前线程就是主线程,也就是UI线程时,某些UI事件,比如UIScrollView的拖动操作,会将Run Loop切
2015-02-16 22:08:21
552
原创 typedef NS_ENUM 与 typedef NS_OPTIONS 的区别
我们知道XCODE本身是支持C和C++的所以我们平时定义枚举的时候,经常采用enum 这种方式直接去定义,也可以采用转义关键字typedef,来简化声明,看一下例子typedef enum { children = 1, man, women , old,}kind;当然这种定义方式本身没有错误,但是OC为我们定义了更加层次清楚地枚举宏定义,看看吧
2015-02-16 16:57:43
1487
原创 iOS特性之协议
接口主要用于定义规范,定义一个接口关键字使用interface。而在Object C 中@interface是用于定义一个类的。在Object C中有一个协议(protocol) 的概念, 协议(Protocol) 在列出的方法在本类中并没有相应实现,而是别的类来实现这些方法,而定义协议必须使用protocol关键字。 一. 如何定义protocol的定义
2015-02-12 11:48:32
489
转载 浅谈HTTP get和post的方法区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
2015-02-12 10:58:31
350
原创 NSURLRequest
前言从本篇开始,我开始全面而系统的研究下ios的网络知识,网络其实我们主要研究的时应用层的HTTP协议以及HTTPS协议,至于其他的应用层,例如XMPP等等,都不在讨论范围内。那么,我们讲解的主要知识,从NSURLRequest--->NSURLConnection---->NSURLSessionLet's Begin!NSURLRequest常用方法
2015-02-11 10:33:01
292
转载 TCP 握手挥手详解
一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能。包含以下四个层次:1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。2. 网络层,也称作互联网层,处理分组在网络中的活动,例如分组
2015-02-07 20:15:18
428
原创 GCD详解
什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像 NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之 NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,
2015-02-05 14:52:11
1633
原创 代码块的复用
如果你是一位开发人员在开发过程中会发现有些代码无论是在同一个工程中还是在不同工程中使用率会很高,有经验的人会直接封装在一个类里,或者写成一个宏定义或者把这些代码收集起来,下次直接使用,或者放到xcode的代码片库里,直接使用, 从而提高开发效率;1.使用Xcode自带代码片段库在属性面板下面有一栏库面板选择条,有一项Code Snippet Library有iOS下OS X
2015-01-25 22:13:03
539
转载 网络抓包工具charles
Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动
2015-01-25 21:58:08
688
转载 iOS:Objective-C中Self和Super详解
Objective-C 中Self 和 Super 详解本文要介绍的内容,在 Objective-C 中的类实现中经常看到这两个关键字 self 和 super,以以前 oop 语言的经验,拿 c++ 为例,self 相当于 this,super 相当于调用父类的方法,这么看起来是很容易理解的。 在 Objective-C 中的类实现中经常看到这两个关键字 ”self” 和 ”s
2015-01-22 16:56:13
364
转载 testFlight
相信一部分开发者,对于Apple收购TestFlight有着比较好奇的心态,那么TestFlight在被收购后,已经再次重新正式发布,可以正常使用了,那么又有多少开发者会去使用它呢?读完Apple的TestFlight官方文档之后,已经不能阻止我的小宇宙爆发了,开始折腾了起来,大致总结有以下两点:如果可以接受10测试人员,那么就不需要提交审核,意味着不需要Apple的漫
2014-12-30 10:58:29
871
转载 id ,NSObject, id<NSObject>区别
我们经常会混淆以下三种申明(我是没有留意过):1. id foo1;2. NSObject *foo2;3. id foo3; 第一种是最常用的,它简单地申明了指向对象的指针,没有给编译器任何类型信息,因此,编译器不会做类型检查。但也因为是这样,你可以发送任何信息给id类型的对象。这就是为什么+alloc返回id类型,但调用[[Foo alloc] ini
2014-12-28 14:15:04
345
转载 如何进行高效率的图片缓存
我之前写过一篇博客,介绍缓存处理的三种方式,其中最难,最麻烦,最占内存资源的还是图片缓存,最近做的项目有大量的图片处理,还是采用了SDWebImage来处理,但是发现之前封装好的代码报错了。研究发现,是我用了新版的SDWebImage,好多方法都变了。现在把代码贴出来,供大家参考。尤其是新手,看完这篇博客,图片缓存so easy。最后有demo供大家下载,先学习。第一步,下载SDW
2014-12-22 21:16:34
743
原创 如何去观察应用使用了多少内存
#import @interface DHJZWatchMemory : NSObject-(float) captureMemUsageGetString;-(NSString*) captureMemUsageGetString:(NSString*) formatstring;@end在h文件中我们声明这两个共有方法,直接初始化,调用就Ok了看看实现吧,不多做赘述了
2014-12-20 15:18:15
415
原创 搞清楚CFBundleVersion和CFBundleShortVersionString的区别
在我们的infoplist里面经常看到这两个关键字,其中CFBundleShortVersionString是针对上线的版本的,如果你要上线一个新版本,那么必须后一个版本号大于前面一个,就是CFBundleShortVersionString的数字,但是CFBundleVersion是针对编译版本的,如果你得版本1.1被打回了,不需要去修改CFBundleShortVersionString的值,
2014-12-20 15:12:15
2288
转载 FMDB详解
由于FMDB是建立在SQLite的之上的,所以你至少也该把这篇文章从头到尾读一遍。与此同时,把SQLite的文档页 加到你的书签中。自动引用计数(APC)还是手动内存管理呢? 两种都行,FMDB会在编译的时候知道你是用的哪一种,然后进行相应处理。 使用方法 FMDB有三个主要的类1.FMDatabase – 表示一个单独的SQLite数据库。
2014-11-13 12:36:06
916
转载 FMDB iOS
今天第一次学习FMDB,实现了增删查改,列几个例子供大家参考创建,插入,更新和删除:使用executeUpdate方法,而查询则用executeQuery1.实例化FMDatabase//paths: ios下Document路径,Document为ios中可读写的文件夹NSArray *paths = NSSearchPathForDirectoriesInDomains(N
2014-11-13 12:23:52
624
原创 撤销(下架)已经通过审核的app
在itunesconnect里的app详情里面找到rights and pricing按钮选择specific stores 然后选择Deselect all取消所有地区选择后,在app详情里就能看到delete app按钮了。这是 最佳的下架做法。
2014-11-06 11:33:53
535
原创 ios8 下面的alert和actionsheet
iOS8下面已经更换了08e3a5fae81812cb6b4fc63c0cdb2a1e76c202a0
2014-11-05 11:41:59
501
转载 ios开发时,在Xcode中添加多个targets进行版本控制
在ios开发时,我们经常会遇到对同一个app开发多个版本(Pro、Lite、Free)的情况,这里就涉及到xcode里通过添加多个targets来进行版本控制的问题了,下面就简单说明一下: 点击左侧的工程名称,右侧会出现PROJECT和TARGETS,点击你现在的target,假如叫A,右键弹出菜单中,选择Duplicate,复制一个相同的target,复制的target一般叫A
2014-11-04 08:57:59
598
转载 C++:复制构造函数在什么时候被调用?
1、对象在创建时使用其他的对象初始化Person p(q); //此时复制构造函数被用来创建实例pPerson p = q; //此时复制构造函数被用来在定义实例p时初始化p2、对象作为函数的参数进行值传递时f(p); //此时p作为函数的参数进行值传递,p入栈时会调用复制构造函数创建一个局部对象,与函数内的局部变量具有相同的作用域需要注意的是,赋值并不会调用复制构造函数,赋值
2014-11-03 22:46:19
457
原创 APP NAME 国际化
1)编辑Info.plist,添加一个新的属性Application has localized display name, 设置其类型为boolean,并将其value设置为选中状态2)创建一个空文件,取名为InfoPlist.strings3)对InfoPlist.strings进行本地化(Get Info -> Make Localization),然后设置需要的语言(简体中文zh
2014-10-13 17:05:11
672
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人