- 博客(56)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 IOS面经系列(四)常见的问题
45. 实例化一个UITableView对象,要求写出关键语句(10分)。答:UITableView *my = [[UITableView alloc]initWithFrame: style:];my.delegate = self;my.dataSource = self;首先需要分配空间设置表格类型然后需要设置两个必须的委托对象。46.
2013-12-16 22:24:24
803
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 IOS面经系列(二)什么是id ,为什么要用id,在哪用id
谁能告诉我以下这三种声明的区别? 1. id b1; 2. NSObject *b2; 3. id b3;第一种,id类型是运行时的动态类型,仅声明了指向对象的指针,没给编译器任何类型信息,因此,编译器不会做类型检查。由于编译器无法知道它的真实类型,即使你发送一个id类型没有的方法,也不会产生编译警告。因此你可以发送任何信息给id类型的对象(但很危险)。
2013-12-16 21:22:17
982
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 IOS面经系列(一)浅析OC之内存管理
要谈oc的内存管理,首先得从对象的生命周期说起。1.对象的生命周期1.1引用计数oc利用引用计数来计算对象的使用寿命。每个对象都有一个与之相联的整数,称作它的引用计数器/保留计数器。当某段代码需要访问一个对象时,该代码将该对象的保留计数器的值加1,表示为“我要访问该对象”。当这段代码结束对象访问时,将对象的保留计数器值减1,表示它不再访问该对象。当保留计数器值为0,表示不再
2013-12-16 16:13:11
720
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 IOS面经系列(三)常用的framework第三方库ASIHTTPRequest简介
ASIHTTPRequest是很好用的ios HTTP开源项目。实现功能如:异步请求,队列请求,GZIP压缩,缓存,断点续传,进度跟踪,上传文件,HTTP认证在新的版本中,还加入了Objective-C闭包Block的支持,让我们的代码更加轻简灵活。下面就举例说明它的API用法。一,发起一个同步请求同步意为着线程阻塞,在主线程中使用此
2013-12-13 14:36:35
717
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 几种常用排序法的整理
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,且其排序思想--分治法(Divide-and-ConquerMethod)也确实使用,因此经常被采用。知名软件公司都喜欢考这个。快速排序还有很多改进版本,如随机选择基准数,区间内数据较少时直接用另外方法排序以减小递归深度。基本思想是:1.先从数列中取出一个数A作为基准数。2.分区过程,将比A大的数全放到它的右边,
2013-04-27 20:47:12
677
转载 iOS 面试题--转自唐巧
iOS 面试题(一)寻找最近公共 View题目:找出两个 UIView 的最近的公共 View,如果不存在,则输出 nil 。分析:这其实是数据结构里面的找最近公共祖先的问题。一个UIViewController中的所有view之间的关系其实可以看成一颗树,UIViewController的view变量是这颗树的根节点,其它的view都是根节点的直接或间接子节点。
2017-02-26 20:19:43
9612
转载 IOS面经系列(五)多线程开发
一、概述线程(thread):用于指代独立执行的代码段。进程(process):用于指代一个正在运行的可执行程序,它可以包含多个线程。任务(task):用于指代抽象的概念,表示需要执行工作。多线程的替代方法:Operation objects(操作对象):操作对象可能创建线程更快,因为它们使用内核里面常驻线程池里面的线程来节省创建的时间,而不是每
2017-02-13 11:17:40
536
原创 iOS10下视频播放黑屏,又是苹果的坑!
最近业余在捣弄视频处理的相关技术。当使用到 AVVideoCompositionCoreAnimationTool去合成视频时,用AVAssetExportSession导出的视频文件,用AVPlayer播放时有一定几率出现黑屏。通宵2个晚上去做AB Test,基本可排除是自身代码问题,原因应该是iOS下AVAssetExportSession在跟其他AV开头的方法共同使用时,会产生不稳定
2016-10-18 16:02:11
21159
3
原创 iOS10 XCode8 证书问题Signing解决方法
中秋节项目要发布,临时在家里电脑打包,发现证书一直识别失败。仔细看了Xcode的配置。尼玛Build Setting里原有的证书设置 居然Deprecated了。然后工程一直打包失败,Target - General 里各种红色感叹号,识别不出匹配的证书。折腾了半天发现用下面的方法,10秒钟完美解决:Target - General - 勾选 X
2016-09-18 11:02:36
27478
2
原创 iOS 后台任务(终于有讲得不错的了)q
iOS7 之前的后台任务流程如下:可以看到,应用其实有十分钟后台的权利。除此之外还有两种所谓的伪后台,一种是系统推送机制,另一种是墓碑式后台(在关闭程序时保存现场,下次启动时还原,给人一种后台的假象)ios7之后(一个app可以混合调用多种模式): Background Au
2015-08-27 15:56:06
975
转载 善用do{...}while(0)
linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引
2014-08-01 10:13:28
479
转载 音频队列服务(Audio Queue Services)
介绍 本文档介绍了如何使用音频队列服务(Audio Queue Services),这是Core Audio Toolbox框架中的一个C语言编程接口。什么是音频队列服务(Audio Queue Services) 在iOS和Mac OS X中,音频队列服务提供了一种直接、低开销的的方式来录制和播放音频。这也是向你的iOS和Mac OS X程序中添加
2014-07-30 14:49:23
1430
转载 Objective-C 和 Core Foundation 对象相互转换的内存管理总结
iOS允许Objective-C 和 Core Foundation 对象之间可以轻松的转换,拿 NSString 和 CFStringRef 来说,直接转换豪无压力:CFStringRef aCFString = (CFStringRef)aNSString; NSString *aNSString = (NSString *)aCFString; 针对内
2014-06-11 17:09:05
493
转载 loadView
一、loadView1.什么时候被调用?每次访问UIViewController的view(比如controller.view、self.view)而且view为nil,loadView方法就会被调用。2.有什么作用?loadView方法是用来负责创建UIViewController的view3.默认实现是怎样的?默认实现即[super loadVi
2014-06-11 15:22:25
443
转载 提高ios app性能 初中高级实践
这篇文章来自iOS Tutorial Team 成员 Marcelo Fabri, 他是 Movile 的一个iOS开发者. Check out his personal website or follow him on Twitter.原文地址 当我们开发iOS应用时,好的性能对我们的App来说是很重要的。你的用户也希望如此,但是如果你的app表现的反应迟钝或者很慢也
2014-04-17 11:30:47
773
转载 关于ios里webview的orientation控制的一些小结
在app里打开H5应用,产品希望能进入全屏模式,并且能指定orientation(方向),比如选定以横屏或者竖屏打开。一、如何在打开View Controller时指定其初始方向?ios6及以后建议的方式是:1、以present(presentViewController)全屏方式打开VC(view controller,一般来说是UINavigationController、UI
2014-03-26 15:07:16
2194
转载 HTTP TCP SOCKET 连接之间的区别与联系
一、From:http://thisliy.javaeye.com/blog/710122http://wenku.baidu.com/view/14a30d0102020740be1e9b84.html (TCP+HTTP工作机制)相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助。1、TCP连接
2014-01-24 16:34:16
809
原创 iOS 优秀第三方开源库备忘-汇总
下面是一些比较流行的第三方库: HTTP相比较之下,AFNetworking是目前最优秀的一个了:轻量、易用、使用者多、开发者有在积极维护。在AFN出现之前,这个角色是由ASIHTTPRequest扮演的,只是到现在年久失修了。关于AFN和ASI的对比,这里有一篇不错的文章http://www.infoq.com/cn/articles/afn_vs_asi。除此之外,MK
2014-01-24 15:50:44
548
转载 asihttprequest old了,用afnetworking把!
http://www.raywenderlich.com/zh-hans/36079/afnetworking速成教程(1)
2014-01-08 22:54:18
440
转载 SVN冲突 之 树冲突
经常有人会说,树冲突是很难解决的一类冲突,其实一旦了解了其原理,要解决也不难。先回顾下对于树冲突的定义。 树冲突:当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生树冲突。出现冲突时,一般会提示冲突的信息是什么。过后我们可以使用svn st来查看当前状态。svn st的各种状态代表什么,请参考此博文svn
2013-12-24 12:14:34
1180
转载 XCODE5 部分新特性简介
自从统一升级xcode5后,我们项目组用.xcassets来管理资源文件。那么这货到底是干嘛用的?一、资源管理,Asset Catalog和Image Slicing资源目录(Asset Catalog)和图像切片(Image Slicing)是Xcode5新加入的功能。资源目录可以方便开发者管理工程中使用的图片素材,利用开发中的命名规则(比如高清图的@2x,图标的Icon,Spl
2013-12-23 11:03:56
599
转载 IOS 静态链接库
一、概述在 Xcode 提供的构建设置中,有一项称为“MACH_O_TYPE ”,其作用是定义输出的产品文件格式以及产品文件用于其他产品构建时如何被链接。它的取值如下所示:1、可执行文件(mh_execute)(.app)2、动态链接库(mh_dylib)(.dylib)3、包(mh_bundle)(.bundle)4、静态链接库(staticlib)(.a
2013-12-17 17:43:47
753
原创 objective-c 范围 NSRange
范围的作用 NSRangetypedef struct _NSRange { unsigned int location; unsigned int length; } NSRange;这个结构体用来表示相关事物的范围,通常是字符串里的字符范围 或者 数组里的元素范围。location字段存放该范围的起始位置,而length则是范围内所含元素的个数。举个栗子:"
2013-12-13 21:36:47
707
转载 IOS优雅的Block语法
自IOS4.0起加入Block语法,UIKit中超过一百个API使用了Block,主要用在线性遍历(简化代码,更好的抽象),方法回调(相比使用delegate模块化程度更高),异步逻辑(GCD框架下)。在一些开源的项目里面也都提供支持Block语法的API,如ASIHttpRequest、Reachability等,更有专门扩展现有框架提供Block支持的Blockskit项目。很显然Bl
2013-12-12 18:04:55
566
原创 让ASIHTTPRequest不占用主线程
ASIHTTPRequest是iOS平台不错的http开源库,关于它的介绍随便google一下一堆。据说 使用ASIHTTPRequest,当同时请求数超过2时,就会跑到主线程去执行,从而影响用户UI操作。如下是ASIHttpRequest的代码所在地:- (void)requestFinished{#if DEBUG_REQUEST_STATUS || DEBUG
2013-12-12 15:34:27
687
转载 C程序中的内存管理
相比静态地分配内存空间,使用动态内存分配具有明显的优势:1, 分配空间的大小够精确: 设想一个读取用户输入行的程序, 如果使用静态分配的数组作为buffer, 那么, 你如何确定该数组的长度呢? 太大或太小都不合适. 因为你无法事先知道用户输入字符串的长度. 而使用动态内存分配就精准多了.2, 静态分配的空间大小无法更改, 而动态分配的内存大小是可调的.标准C中的内存管理函
2013-11-25 15:45:43
495
转载 关于单例(Singleton)的示范代码:allocwithzone
static MyGizmoClass *sharedGizmoManager = nil;+ (MyGizmoClass*)sharedManager{ if (sharedGizmoManager == nil) { sharedGizmoManager = [[super allocWithZone:NULL] init]; } ret
2013-11-25 15:23:39
626
转载 C语言函数设计的一般原则和技巧
1、原则上尽量少使用全局变量,因为全局变量的生命周期太长,容易出错,也会长时间占用空间.各个源文件负责本身文件的全局变量,同时提供一对对外函数,方便其它函数使用该函数来访问变量。比如:niSet_ValueName(…);niGet_ValueName(…);不要直接读写全局变量,尤其是在多线程编程时,必须使用这种方式,并且对读写操作加锁。2、参数命名要恰当,顺序要合理。例如编
2013-11-25 14:48:03
771
转载 ios滤镜Core Image
Core Image是一个很强大的框架。它可以让你简单地应用各种滤镜来处理图像,比如修改鲜艳程度, 色泽, 或者曝光。 它利用GPU(或者CPU,取决于客户)来非常快速、甚至实时地处理图像数据和视频的帧。多个Core Image滤镜可以叠加在一起,从而可以一次性地产生多重滤镜效果。这种多重滤镜的优点在于它可以生成一个改进的滤镜,从而一次性的处理图像达到目标效果,
2013-11-22 16:31:23
584
转载 iOS动画效果和实现
动画效果提供了状态或页面转换时流畅的用户体验,在iOS系统中,咱们不需要自己编写绘制动画的代码,Core Animation提供了丰富的api来实现你需要的动画效果。 UIKit只用UIView来展示动画UIKit只用UIView来展示动画,动画支持UIView下面的这些属性改变:frame bounds center transform
2013-09-30 15:25:51
560
原创 popover典型问题:Popover with embedded navigation controller doesn't respect size on back nav
QUESTION:I have a UIPopoverController with navigationController and bunch of subviews. The size of the popover is set just before it's shown like this:[self.myPopover setPopoverContentSize:CGSiz
2013-09-30 12:45:25
743
转载 关于企业IT产品免费模式的思考
前言:各位看官,下面你将看到的是一篇一万多字的文章,没有图片,也没有激动人心的新思想,有的只是一个做了很多年企业产品营销的老兵的一大堆絮絮叨叨和痴心妄想。企业产品,又叫2B产品,单从这名字上来看,就够2的了。如果你是2B爱好者,请进;如果你不是,请绕道。1、慷慨的宋公明哥哥 事实上,免费模式并不是现代的发明。在宋朝的时候,有一个黑社会团会的头子,脸很黑,但出手很大方。江湖草寇,
2013-09-24 10:44:40
4609
转载 UITableView简介
一、UITableView概述 UITableView继承自UIScrollView,可以表现为Plain和Grouped两种风格,分别如下图所示: 其中左边的是Plain风格的,右边的是Grouped风格,这个区别还是很明显的。 查看UITableView的帮助文档我们会注意到UITableView有两个Delegate分别为
2013-09-16 15:43:29
512
转载 简洁的对参数容错的javascript方法
如果你是个Javascript程序员,那一定经常写下面的代码: function funcA(url, params, callback, option){ if(arguments.length == 2){ //funcA(url, callback); if(typeof params == 'function'){
2013-09-16 12:01:32
725
原创 C语言static变量详解
static的作用:1.在其他文件隐藏同名函数和全局变量。未加static前缀的全局变量和函数都具有全局可见性,意味着其它文件也能访问。如果加了static,就会对其它源文件隐藏。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。对于函数来讲,static的作用仅限于隐藏,而对于变量,static还有下面两个作用。2.保持变量的持久。和全局变量一样,st
2013-08-23 15:57:57
739
原创 简单的实现播放背景音乐(淡入淡出效果)
最近在开发幻灯片的需求,首先确认项目里已经加入AudioToolbox.framework。在此放上背景音乐播放的代码,添加淡入淡出效果,重温一下计时器的知识点。头文件 QZSoundBoard.h 内容如下#import #import @interface QZSoundBoard : NSObject+ (void)addSoundAtPath:(NSString *)
2013-08-22 20:01:15
4543
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人