
IOS技术开发
文章平均质量分 52
Akihicc
爱编程,不爱bug;爱生活,不爱黑眼圈。
展开
-
IOS 学习笔记69- Animation温习系列一
图层树、寄宿图以及图层几何学(一)图层的树状结构巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角。Core Animation是一个复转载 2015-03-17 11:39:12 · 1557 阅读 · 0 评论 -
IOS学习笔记48--一些常见的IOS知识点+面试题
1、堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。2、数组和链表什么区别? 答:数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。 链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指原创 2013-08-15 17:17:35 · 17390 阅读 · 4 评论 -
IOS学习笔记51--多线程编程之GCD
一、简介在iOS所有实现多线程的方案中,GCD应该是最有魅力的,因为GCD本身是苹果公司为多核的并行运算提出的解决方案。GCD在工作时会自动利用更多的处理器核心,以充分利用更强大的机器。GCD是Grand Central Dispatch的简称,它是基于C语言的。如果使用GCD,完全由系统管理线程,我们不需要编写线程代码。只需定义想要执行的任务,然后添加到适当的调度队列(dispatch转载 2013-08-27 15:26:38 · 2900 阅读 · 0 评论 -
IOS学习笔记50--多线程之NSOperation
一:NSOperation // 1.简介// NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作。// NSOperation本身是抽象基类,因此必须使用它的子类,使用NSOperation子类的方式有2种:// 1> Foundation框架提供了两个具体子类直接供我们使用:NSInvocati转载 2013-08-27 11:39:13 · 4119 阅读 · 0 评论 -
IOS学习笔记49--多线程之Thread
每个iOS应用程序都有个专门用来更新显示UI界面、处理用户的触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验。一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法。 iOS支持多个层次的多线程编程,层次越高的抽象程度越高,使用也越方便,也是苹果最推荐使用的转载 2013-08-27 09:47:28 · 1078 阅读 · 0 评论 -
IOS学习笔记47--UIApplication深入研究
很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的api来实现一些功能,但是不可否认,这个类是iOS编程中很重要的一个概念,所以我这里写这个文章来总结以下这个类的信息,如果写的不对的地方,请留言,多谢。UIApplication的核心作用是提供了iOS程序运行期间的控制和协作工作。每一个程序在运行期必须有且仅有一个UIApplication(或则其子类)的一个实转载 2013-08-13 18:02:09 · 1506 阅读 · 0 评论 -
IOS学习笔记46--Block探究(二)
iOS4引入了一个新特性,支持代码块的使用,这将从根本上改变你的编程方式。代码块是对C语言的一个扩展,因此在Objective-C中完全支持。如果你学过Ruby,Python或Lisp编程语言,那么你肯定知道代码块的强大之处。简单的说,你可以通过代码块封装一组代码语句并将其当作一个对象。代码块的使用是一种新的编码风格,可以让你运用自如的使用iOS4中新增API。 我们先来看两个在原创 2013-08-13 17:18:09 · 1451 阅读 · 0 评论 -
IOS学习笔记39--NSString各种语法的使用
今天就NSString的各种语法学习学习,以后慢慢补充;1.字符串的遍历 NSString *string = @"CHENGWULI"; //字符串的长度 int count = [string length]; NSLog(@"字符串的长度是%d",count); //遍历字符串中的每一个字符 for(int i =0;原创 2013-08-05 16:16:31 · 1450 阅读 · 0 评论 -
IOS学习笔记45--UITableView性能优化
说实话,面试的时候已经被问到几次这个问题,然后就搜索了一下,看到了这篇优化文章,感觉不错,转来日后作为一种UITableView优化的方法。使用不透明视图。 不透明的视图可以极大地提高渲染的速度。因此如非必要,可以将table cell及其子视图的opaque属性设为YES(默认值)。其中的特例包括背景色,它的alpha值应该为1(例如不要使用clearColor)原创 2013-08-12 15:49:03 · 11025 阅读 · 1 评论 -
IOS学习笔记44--ASIRequestHttp之BUG(一)
其实这也是无意间看到的,大家看看是不是这么回事BUG:当下载线程数超过2时,就会影响到主线程响应用户请求的速度了看ASIRequestHttp.m--requestFinished代码- (void)requestFinished{#if DEBUG_REQUEST_STATUS || DEBUG_THROTTLINGASI_DEBUG_LOG(@"[STATUS] R原创 2013-08-12 15:18:33 · 1838 阅读 · 0 评论 -
IOS学习笔记43--IOS App在ItunesConnect里面的几种状态
Waiting for Upload (Yellow) Appears when you’ve completed entering your metadata, however, you have not finished uploading your binary or have chosen to upload your binary at a later time. Your原创 2013-08-12 10:45:53 · 3660 阅读 · 0 评论 -
IOS学习笔记42--Block探究(一)
其实一直不然懂block这个东西,今天就 一边查资料 一边记录 一边学吧。传统定义:A block is an anonymous inline collection of code, and sometimes also called a "closure".就是活:block其实一个匿名的内联代码集合体 ,有时也称为“闭包”。Block从IOS4.0+ 和 Mac OS X 10.6+原创 2013-08-07 17:56:54 · 2060 阅读 · 0 评论 -
IOS学习笔记41--图片的缩放(二)
今天的重点:利用ScrollView进行图片的缩放直接先说原理吧--原理:利用了scrollview的回调函数(如下)以及scrollview自己内部的一些缩放规则(其实我也还没弄清楚具体scrollview干了什么事),只是知道了它可以怎么做-_-#- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{原创 2013-08-07 10:33:41 · 6337 阅读 · 0 评论 -
IOS学习笔记41--图片的缩放(一)
图片的缩放 一:Pinch手势对图片进行缩放。即用两根手指往不同方向拖拉照片,照片会被缩小或放大。我理解的原理:等比缩放先看如下关键代码:1.初始化参数- (void)viewDidLoad{ [superviewDidLoad]; lastDistance = 0.0; imageStartHeight原创 2013-08-06 11:01:45 · 2047 阅读 · 0 评论 -
IOS学习笔记40--NNString各种五花八门的语法
转载自博客哥:http://blog.youkuaiyun.com/xys289187120?viewmode=contentsObjective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以转载 2013-08-05 16:47:04 · 1701 阅读 · 0 评论 -
IOS学习笔记38--@class #import辨析 #include
解析: 很多刚开始学习iOS开发的同学可能在看别人的代码的时候会发现有部分#import操作写在 .m 文件中,而 .h 文件仅仅使用@class进行声明,不禁纳闷起来,为什么不直接把#import放到h文件中呢? 这是因为 .h 文件在修改后,所有 #import 该 .h 文件的所有文件必须重 新Build,因此,如果把 #import 写在 .h 文件中原创 2013-08-01 17:53:37 · 4617 阅读 · 0 评论 -
IOS学习笔记52-- CGContextRef 基本认识点
一般的画图基础知识总结:0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文1 CGContextMoveToPoint 开始画线2 CGContextAddLineToPoint 画直线4 CGContextAddEllipseInRect 画一椭圆4 CGContextSetLine转载 2013-09-11 14:39:18 · 3362 阅读 · 0 评论 -
IOS学习笔记53--iOS 获取手机系统属性
//手机序列号 NSString* identifierNumber = [[UIDevice currentDevice] uniqueIdentifier]; NSLog(@"手机序列号: %@",identifierNumber); //手机别名: 用户定义的名称 NSString* userPhoneName = [[UIDevice c转载 2013-09-11 21:17:12 · 5421 阅读 · 0 评论 -
IOS学习笔记68 -- 开发的一些奇巧淫技
TableView不显示没内容的Cell怎么办?类似这种,我不想让下面那些空的显示.很简单.1self.tableView.tableFooterView = [[UIView alloc] init];试过的都说好.加完这句之后就变成了这样.自定义了left转载 2015-01-05 10:36:11 · 1578 阅读 · 0 评论 -
IOS学习笔记65 —— ARC中__bridge, __bridge__transfer, __bridge_retained 关系
Toll-Free Bridging当你在 Objective-C 和 Core Foundation 对象之间进行转换时,就需要使用 Bridge cast。今天的多数应用很少需要使用 Core Foundation,大多数工作都可以直接使 用 Objective-C 类来完成。但是某些底层 API,如 Core Graphics 和 Core Text, 都基于 Cor转载 2014-05-10 18:10:47 · 7057 阅读 · 0 评论 -
IOS学习笔记67-IOS8系列之应用扩展
一、扩展概述扩展(Extension)是iOS 8中引入的一个非常重要的新特性。扩展让app之间的数据交互成为可能。用户可以在app中使用其他应用提供的功能,而无需离开当前的应用。 在iOS 8系统之前,每一个app在物理上都是彼此独立的,app之间不能互访彼此的私有数据。而在引入扩展之后,其他app可以与扩展进行数据交换。基于安全和性能的考虑,每一个扩转载 2014-09-24 14:17:31 · 7214 阅读 · 1 评论 -
IOS学习笔记66 - 关于Info.plist
我们建立一个工程后,会在Supporting files下面看到一个"工程名-Info.plist"的文件,这个是对工程做一些运行期配置的文件,很重要,不能删除。如果你在网上下载的工程中的这个文件名只是Info.plist,那么恭喜你,这个工程太老了,是用包含SDK2.0以前的Xcode生成的,不过没关系,不影响使用。如果你使用文本编辑器打开这个文件,你会发现这是一个XML格式的文转载 2014-08-28 10:10:43 · 1175 阅读 · 0 评论 -
IOS学习笔记64--关于linker command failed with exit code错误
由于最近刚接手做静态库的同事的工作,这样难免的集成调试啊,但是集成之后老是出现linker command failed with exit code 1这个错误,查了许多资料,最后终于解决了,今天就这个问题做个探讨,以防止以后犯同样的错误,我先说下我这个项目里面错误的解决办法,然后再笼统的说下其他的解决办法。。 好,这是我出现 linker command failed with原创 2014-05-05 16:45:05 · 13399 阅读 · 0 评论 -
IOS学习笔记63--截取当前图像保存至相册
码农就应该坚持写东西,防止秃顶的速度加快,嘿嘿! 2104年就用这个开头吧,好久没写了,颓废了...//截图-(UIImage *)captureCurrentView :(UIView *)view{ CGRect frame = view.frame; UIGraphicsBeginImageContext(frame.size); C原创 2014-03-17 20:56:43 · 1636 阅读 · 0 评论 -
IOS学习笔记60--异常处理
好久好久没有写博客了,说实话吧,一个是因为忙,但更重要的是冬眠了,感觉,懒的写了。但是,这脑子吧,实在是不好使,记不住东西,所以,还是通过博客记录下,以后吧,一定要常常更新,算是给2013结一个好尾,给2014开一个好头了。今天吧,就说说异常处理,感觉这东西也是比较有用的,言归正传,咱接着谈异常。Crash分为两种,一种是由EXC_BAD_ACCESS引起的,原因是访问了不属于本进程的内存地址原创 2013-12-23 09:29:01 · 3369 阅读 · 0 评论 -
IOS学习笔记62--ios info plist配置说明
Key:Application can be killed immediately after launch(NSSupportsSuddenTermination)Value:BOOL说明: 指定应用程序是否可以被杀死,以便更快地关闭或注销操作。 表示系统是否可以彻底杀死的应用程序以注销或关闭更迅速。您可以使用此键来指定应用程序是否可以在关闭后转载 2013-12-30 17:52:19 · 19315 阅读 · 2 评论 -
IOS学习笔记61--299刀企业证书APP的发布
好,走一贯风格,不罗嗦,直接上干货。前提:你已经有了299刀的企业证书,以及你的APP已经调测没有一点问题了,咱就开始发布1.打包APP,看图兄弟们,打包的最后一图,也是最重要的一图了,不过,不要紧张哈,其实也很简单啦,看图:哇,很神奇,打包完成了,桌面上出现了ipa和plist的两个文件,你看是不是咧第二步,咱得制作一个跟网页协原创 2013-12-30 15:59:13 · 3821 阅读 · 2 评论 -
IOS学习笔记59-Retain、Copy以及Copy协议探讨
阅读本文之前首先了解Copy与Retain的区别: Copy是创建一个新对象,Retain是创建一个指针,引用对象计数加1。 Copy属性表示两个对象内容相同,新的对象retain为1 ,与旧有对象的引用计数无关,旧有对象没有变化。copy减少对象对上下文的依赖。 Retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retai原创 2013-10-26 15:38:19 · 3210 阅读 · 0 评论 -
IOS学习笔记58--IOS7新特性之XCODE
Welcome to Xcode 5 这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览。本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS或邮件方式订阅本站,这样您将能在第一时间获取本站信息。本文涉及到的WWDC2013 Session有Session转载 2013-10-14 16:08:10 · 19195 阅读 · 4 评论 -
IOS学习笔记56-IOS7状态栏适配方法一
近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来,所以了,我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下,供广大网友一起讨论交流。PS:首先说明下,ios7中,由于status bar不再占用单独的20px,如果app需要同时支持ios7和ios6.1以下,那就需要适配下了,适配开始:第一步:先原创 2013-10-11 12:07:06 · 19596 阅读 · 3 评论 -
IOS学习笔记57--IOS7状态栏适配(二)
上一遍文章通过XIB的设置达到了状态栏和view重合的问题,这一篇我们讲一讲网传的修改window frame方法。先上步骤:第一:在appdeletage里面 添加如下代码: if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { self.window.frame = C原创 2013-10-11 16:12:09 · 8839 阅读 · 0 评论 -
IOS学习笔记55--统计Crash的工具Crashlytics
转自:http://www.infoq.com/cn/articles/crashlytics-crash-statistics-tools简介Crashlytic 成立于2011年,是专门为移动应用开者发提供的保存和分析应用崩溃信息的工具。Crashlytics的使用者包括:支付工具Paypal, 点评应用Yelp, 照片分享应用Path, 团购应用GroupOn等移动应用。转载 2013-09-16 21:11:03 · 7668 阅读 · 0 评论 -
IOS学习笔记54--关于 srand() 和rand()
今天无意间看程序看到这么个东西: srand((int)time(0)),然后由于不太懂,就大概查资料,写代码试试了下,先总结如下:先说说这个的意思 : srand((int)time(0))srand(seed)用来将随机序列的起始点设为seedsrand((int)time(0))表示以当前时间对应的int值为随机序列起点,这样每次运行程序,由于起点不同才可以得到不同的随机原创 2013-09-14 11:16:40 · 2280 阅读 · 0 评论 -
IOS学习笔记35——UIPasteboard/UIMenuController(一)
今晚称有点时间,就分享下今天的成果,剪贴板的使用以及自定义剪贴板。 系统剪贴板的直接调用 其实整个过程非常的简单,我就用我写的一个自定义UILable来说明调用系统剪贴板。 首先,因为苹果只放出来了 UITextView,UITextField,webView三个控件的剪贴板,所以一般控件的剪贴板都被禁用了,因此,我们首先要做的就是把这属性放出来,其实就是实现三个原创 2013-07-01 18:03:37 · 7067 阅读 · 0 评论 -
IOS学习笔记37——UIPasteboard/UIMenuController(三)
这篇咱总结总结自定义剪贴板的使用其实自定义剪贴板也非常简单,无非是放开响应时间,通过UIMenuController自定义剪贴板,然后就是最关键的实现你所用的copy方法拉。为了方便实用,我给cell添加了长按事件,看代码---UILongPressGestureRecognizer *recognizer = [[UILongPressGestureRecognizerall原创 2013-07-01 22:30:01 · 11810 阅读 · 1 评论 -
IOS学习笔记36——UIPasteboard/UIMenuController(二)
好,上一篇咱们讲到了在UILabel上生成一个剪贴板,这篇咱写写一写在UITableView上实用剪贴板的两种方法;一:在自定义cell里面使用 其实,在cell的使用跟在label里面的用法基本一样1.放方法:- (BOOL)canBecomeFirstResponder{ returnYES;}- (BOOL)canPerformAction:(SEL原创 2013-07-01 22:13:52 · 7159 阅读 · 0 评论 -
iOS学习笔记15— UINavigationController的学习体会
一:UINavigationBar 1.一个导航器控制个若干个视图控制器; 2.一个导航控制器包含一个NavigationBar 和一个 toolBar; 3.UINavigationBar中的 一个按钮是 UINavigationItem (only one) 4.UINavigationItem不受 UINavigationBar 控制,更不由 UINavigation原创 2013-03-12 11:25:26 · 1589 阅读 · 0 评论 -
iOS学习笔记14—设置顶部状态栏(State)的两种方式
一: 代码实现 : [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];二:TARGETS设置 : 点击 TARGETS-------info ----- Required device capabilities 点击+号增加一个 Status bar原创 2013-03-07 11:46:13 · 2917 阅读 · 0 评论 -
iOS学习笔记12—听筒和扬声器的转换
UInt32 route = isSpeakerEnable?kAudioSessionOverrideAudioRoute_Speaker : kAudioSessionOverrideAudioRoute_None;AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(route), &rout原创 2013-02-20 11:41:50 · 1251 阅读 · 0 评论 -
iOS学习笔记7—程序实现国际化 (即本地多语言化)
在iPhone项目中如何才能国际化?难道同一个项目,非要写一个英文版的源代码,再写一个中文版的源代码?其实大可不必。我们可以使用iPhone的多语言支持来实现项目的本地(国际)化。1、新建Windows-base Application。打开main.m文件,在main函数中增加代码如下:// 取得用户默认信息NSUserDefaults *defaults = [ NSUserD转载 2013-02-18 15:25:56 · 2428 阅读 · 0 评论