
Objective-C
文章平均质量分 75
dqjyong
这个作者很懒,什么都没留下…
展开
-
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
Apple官方的文档为生成一个UIImage对象提供了两种方法:1. imageNamed,其参数为图片的名字;2. imageWithContentsOfFile,其参数也是图片文件的路径。那么两种有什么区别吗?肯定是有的。根据Apple的官方文档:imageNamed: 这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象如果它存在的话。如果缓存中没有找到相应的图原创 2014-05-25 17:39:38 · 40735 阅读 · 2 评论 -
NSDate和NSString之间的转换,(可以转时区的哈)
NSString和NSDate互转需要用到NSDateFormatter,设置一下timezone和format即可,直接上代码 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; NSTimeZone *timeZone = [NSTimeZone localTimeZone]; [format转载 2014-04-01 10:33:13 · 5108 阅读 · 0 评论 -
EXC_BAD_ACCESS异常 调试过程
当我的代码是这样编写时:在button出现touch操作时,button的action会执行下面的代码, dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSString *leftId = @"face_id";原创 2014-03-29 22:55:48 · 12649 阅读 · 0 评论 -
iOS7隐藏状态栏 status Bar
iOS7中,不仅应用的风格有一定的变化,状态栏变化比较大,我们可以看到UIViewController的状态栏与导航栏基本是一体的。因此UIVIEWCONTROLLER的hide/show状态的方法也跟其他版本的不一样了。 在iOS7以前的版本,hide/show是通过以下代码实现[[UIApplication sharedApplication] setStatusBarHidd原创 2014-01-06 00:03:23 · 30414 阅读 · 0 评论 -
iOS快速更新drawRect方法
If you are an advanced user of drawRect on your ipop*, you will know that of course drawRect will not actually run until "all processing is finished." setNeedsDisplay flags a view as invalidated and t转载 2013-12-08 20:39:08 · 5687 阅读 · 0 评论 -
iOS中如何添加自定义的字体
iOS中中文字体种类特别的少,有时为了增加字体的艺术效果需要添加自定义的字体。其实在iOS中添加自定义字体很简单,4步就可搞定: 1,在Info.plist中加入名为UIAppFonts的array 2,把*.ttf 和*.otf文件加入到项目当中,比如说是MyScript.ttf 3,把文件名添加到UIAppFonts数组里面 4,在程序中用下面的原创 2013-08-27 22:14:08 · 1455 阅读 · 0 评论 -
IOS学习之IOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
我们看看NSFileManager如何使用。包括创建文件,目录,删除,遍历目录等。1、在Documents里创建目录创建一个叫test的目录,先找到Documents的目录, NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)转载 2013-06-22 21:56:07 · 1943 阅读 · 0 评论 -
IOS学习之IOS沙盒(sandbox)机制和文件操作(二)
我们看看如何获取应用程序沙盒目录。包括真机的沙盒的目录。1、获取程序的Home目录 NSString *homeDirectory = NSHomeDirectory(); NSLog(@"path:%@", homeDirectory);打印结果:2012-06-17 14:00:06.098 IosSandbox转载 2013-06-22 21:55:36 · 1365 阅读 · 0 评论 -
IOS学习之IOS沙盒(sandbox)机制和文件操作(一)
1、IOS沙盒机制IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。1.1、每个应用程序都有自己的存储空间1.2、应用程序不能翻过自己的围墙去访问别的存储空间的内容1.3、应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。转载 2013-06-22 21:53:45 · 2179 阅读 · 0 评论 -
iOS 并行编程之 GCD使用
GCD是Grand Central Dispatch的缩写。其包含了语言特性、runtime libraries以及提供系统级、综合提高的系统增强功能在iOS和OSX 系统上多核的硬件来支持并行执行代码。GCD会负责创建线程和调度执行你写的功能代码。系统直接提供线程管理,比应用添加线程更加高效,因此使用GCD能够带来很多好处,例如使用简单、而且更加高效,允许你同步或者一部执行任意的代码block。原创 2012-11-12 16:39:05 · 3963 阅读 · 0 评论 -
iOS UITextField 使用全解
UITextField 座位用户交互的一个必备使用的控件,其使用频率较高。定义一个UITextField 及其基本的属性: UITextField _telNum = [[UITextField alloc] init]; _telNum.clearsOnBeginEditing = NO;//在输入时不清除原来输入的文字 _telNum.delegate = s原创 2012-11-12 14:37:39 · 4924 阅读 · 1 评论 -
IOS UIKIT框架类之窗口和视图架构介绍!
窗口和视图窗口和视图是为iPhone应用程序构造用户界面的可视组件。窗口为内容显示提供背景平台,而视图负责绝大部分的内容描画,并负责响应用户的交互。虽然本章讨论的概念和窗口及视图都相关联,但是讨论过程更加关注视图,因为视图对系统更为重要。视图对iPhone应用程序是如此的重要,以至于在一个章节中讨论视图的所有方面是不可能的。本章将关注窗口和视图的基本属性、各个属性之间的关系、以及在转载 2012-09-12 11:52:41 · 1535 阅读 · 0 评论 -
IOS UIKIT框架类之视图动画和坐标系介绍!
Core Animation基础Core Animation利用了硬件加速和架构上的优化来实现快速渲染和实时动画。当视图的drawRect:方法首次被调用时,层会将描画的结果捕捉到一个位图中,并在随后的重画中尽可能使用这个缓存的位图,以避免调用开销很大的drawRect:方法。这个过程使Core Animation得以优化合成操作,取得期望的性能。Core Animation把和视转载 2012-09-12 11:50:31 · 1657 阅读 · 0 评论 -
iOS NSDictionary、NSData、JSON数据类型相互转换
iOS经常需要用到数据类型的转换,下面列举一下常用类型的转换。1.NSDictionary类型转换为NSData类型://NSDictionary -> NSData:NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: @"balance",原创 2012-08-13 23:30:08 · 59124 阅读 · 0 评论 -
内存分配大全——windows 、IOS系统下C++\objective C内存分配
malloca/alloca: 内存分配函数,与malloc,calloc,realloc类似。但是注意一个重要的区别,_alloca是在栈(stack)上申请空间,用完马上就释放。 alloca包含在头文件malloc.h中,在某些系统中会宏定义成_alloca使用。 注意: 1.在调用 alloca的函数返回的时候, 它分配的内存会自动释放。也就是说, 用原创 2012-08-09 14:03:29 · 3332 阅读 · 0 评论 -
IT程序员不得不知道的程序出现的错误类型
即使是最牛叉的程序员,他们在程序开发过程的各个阶段也可能发生错误,但是他们有着丰富的解决错误的能力。下面简要分析这些错误。 我们可以将程序设计中的错误分成五类:第一类,编译期错误。何谓编译, 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。 编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语原创 2012-08-09 13:45:43 · 2155 阅读 · 0 评论 -
iOS/iPhone 程序文件目录结构以及启动流程
要想清晰的理解IOS应用程序的启动过程,毫无疑问需要深入了解一下ios应用程序的文件系统。一个ios应用程序都有一个属于自己沙盒(sandbox),应用沙盒就是文件系统目录,并且与文件系统的其他部分隔离。应用必须待在自己的沙盒里,应用既不能访问其他应用的沙盒,其他应用也不能访问该沙盒。 应用沙盒包含多个目录: 1.应用程序包(applicat原创 2012-08-05 16:01:36 · 17077 阅读 · 2 评论 -
libxml2.dylb 导致<libxml/tree.h> 老是找不到头文件
添加了libxml2.dylb的framework ,结果还是引用不了, 老是提示找不到头文件。这个问题其实比较容易解决,但是XCode的版本问题确实让开发者头疼。在Xcode4,2之后,可以在添加了libxml2.dylb之后,点击左上角的project,然后进行Build Settings(这里不管是Project还是targets都行),找到Search Paths选项卡,其下原创 2012-08-04 16:56:45 · 19829 阅读 · 0 评论 -
iOS崩溃日志crash logs追踪以及调试方法
在IOS程序开发和以及在真机运行程序时,经常会遇到程序crash的情况,从哪里可以获得crash的日志文件,以便更好的分析程序崩溃的原因,让应用更加完美。 在真机运行程序出现crash状况时,机器会自动产生log文件,它包含了在程序crash之前正在做什么的信息。在pc上对手机或者ipad设备进行同步,就可以将这些日志文件存储在电脑中。下面时如何找到这些日志文件:1.同步你原创 2012-08-02 22:34:42 · 15386 阅读 · 0 评论 -
面试题(2012年7月)
红黑树与平衡二叉树的区别: 红黑树和AVL树的区别在于它使用颜色来标识结点的高度,它所追求的是局部平衡而不是AVL树中的非常严格的平衡。AVL树的复杂比起红黑树来说简直是小巫见大巫。红黑树是真正的变态级数据结构。 Objective C中NSArray中有元素为nil,那么对NSArray中元素的影响。 类的构造函数为private属性时,类原创 2012-08-02 13:31:43 · 1326 阅读 · 1 评论 -
如何绑定或者解除绑定微博和人人帐号
OAuth2.0验证得到了广泛的应用,其中微博和人人都是用了这种认证方式。在IOS开发微博和人人的客户端时,首先要解决的问题就是微博的绑定和解除绑定。绑定比较容易解决,按照官方提供的OAuth流程即可实现。而解除绑定比较麻烦,需要考虑IOS的网络请求过程的缓存机制。 IOS网络请求一般是用NSURLRequest类,而IOS采用NSURLRequest请求时会帮你主动记录下原创 2012-07-30 11:31:20 · 7404 阅读 · 2 评论 -
详解IOS开发应用之并发Dispatch Queues
详解IOS开发应用之并发Dispatch Queues是本文要介绍的内容,我们几乎可以调度队列去完成所有用线程来完成的任务。调度队列相对于线程代码更简单,易于使用,更高效。下面讲主要简述调度队列,在应用中如何使用调度队列去执行任务。1、关于调度队列所有的调度队列都是先进先出队列,因此,队列中的任务的开始的顺序和添加到队列中的顺序相同。GCD自动的为我们提供了一些调度队列,我们也可以转载 2012-07-18 14:56:58 · 960 阅读 · 0 评论 -
iOS NSFileHandle使用
NSFileHandle类是一个针对文件描述符的面向对象封装类。可以使用文件处理对象来访问与文件、sockets、管道pipes和设备相联系的数据。 对于文件,你可以在文件中读、写、查找。对于套接字sockets、pipes和devices,可以使用处理对象来异步监视设备和进程数据。 大部分NSFileHandle类的创建方法都能使文件处理对象获得相关联的文件描述符的所有权。这意味翻译 2012-07-18 13:42:30 · 3627 阅读 · 0 评论 -
IOS 使用Block
调用Block如果把block声明为变量,你可以将block作为函数来使用。下面用两个例子来说明:int (^oneFrom)(int) = ^(int anInt) { return anInt - 1;};printf("1 from 10 is %d", oneFrom(10));// Prints "1 from 10 is翻译 2012-07-16 18:58:16 · 2428 阅读 · 0 评论 -
IOS 消息推送原理及实现总结(续)---- Provider实现
在IOS 消息推送原理及实现总结中讲述了消息推送的原理及实现总结,但并未讲到Provider服务端及Client App客户端的实现,但我在这里只是简单讲述Provider服务端(JAVA实现)步骤如下: 一、 制作Provider服务端所需要的*.p12文件:在IOS 消息推送原理及实现总结的图2-8中所展示的密钥、证书,我们并没有使用到它,那么为什么要展示出来呢,转载 2012-07-16 17:03:33 · 2686 阅读 · 0 评论 -
IOS 消息推送原理及其实现
一、消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图1-1: 1-11、 Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]);2、 APNS:A转载 2012-07-16 17:01:41 · 1978 阅读 · 0 评论 -
iOS 高级内存管理:比较__unsafe_unretain、__strong、__weak、__autoreleasing
在前面分析了nomantic、copy、retain等属性之后,在教新的XCode版本中,我们又经常会看到__unsafe_unretain、__strong、__weak、__autoreleasing这四种属性,那么他们有什么用呢?__unsafe_unretain、__strong、__weak、__autoreleasing是出现在 LLVM 编译器 3.0版本之后。而__unsa原创 2012-07-12 23:23:29 · 12102 阅读 · 0 评论 -
iOS UITableView的使用大全
首先、对UITableView进行讲解,下面有对它进行实际的应用UITableView 显示大型内容的列表 单行,多列 垂直滚动,没有水平滚动 大量的数据集 性能强大,而且普遍存在于iPhone的应用程序中TableVie转载 2012-07-04 22:21:08 · 7706 阅读 · 0 评论 -
iOS NSInteger/NSUInteger与int/unsigned int、long/unsigned long之间的区别!
在iOS开发中经常使用NSInteger和NSUInteger,而在其他的类似于C++的语言中,我们经常使用的是int、unsigned int。我们知道iOS也可以使用g++编译器,那么它们之间是否有什么联系呢? 从NSUInteger和NSInteger的定义文件中 NSObjCRuntime.h发现有这样的语句:#if __LP64__ || (TARGET_OS_EM原创 2012-07-03 18:19:19 · 11461 阅读 · 1 评论 -
iOS UIAlertView使用注意事项
最近在开发iOS应用中,经常使用UIAlertView类对象来显示提示信息。而且在UIAlertView对象可以添加button,通过button的操作来控制程序运行流程。下面简要说一下使用UIAlertView需要注意的地方。 1.如果想要捕获UIAlertView对象的消息,需要设置UIAlertView的delegate,这个一般在初始化的时候就可以完成;原创 2012-07-03 11:47:02 · 4471 阅读 · 2 评论 -
iPhone实战:动态改变UITableView中的Cell高度
往往在开发iPhone的应用过程中用得最多的应该算是UITableVIew了,凭着IOS给UITableView赋予了这种灵活的框架结构,让它不管在显示列表方面还是在排版方面都有着一定的优势。虽然UITableView功能强大,但是对于一些复杂的应用需求在开发的过程中会出现一些问题,如动态改变UITableView显示的Cell高度就是其中之一 其实想要改变UITableVie转载 2012-06-29 18:17:40 · 1532 阅读 · 0 评论 -
MVC设计模式详解
MVC(Model View Controller)模型(model)-视图(view)-控制器(controller):MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,转载 2012-06-27 21:35:16 · 22930 阅读 · 1 评论 -
IOS 如何选择delegate、notification、KVO?
前面分别讲了delegate、notification和KVO的实现原理,以及实际使用步骤,我们心中不禁有个疑问,他们的功能比较类似,那么在实际的编程中,如何选择这些方式呢? 在网上看到一个博客上详细的分析了三者之间的区别以及各自的优势,博文地址为http://blog.shinetech.com/2011/06/14/delegation-notification-and-obs翻译 2012-06-23 22:46:13 · 32694 阅读 · 4 评论 -
iOS NSNotification的使用
如果在一个类中想要执行另一个类中的方法可以使用通知1.创建一个通知对象:使用notificationWithName:object: 或者 notificationWithName:object:userInfo: NSNotification* notification = [NSNotification notificationWithName:kImageNotificat原创 2012-06-20 11:12:25 · 114545 阅读 · 2 评论 -
KVO/KVC 实现机理分析
Objective-C里面的Key-Value Observing (KVO)机制,非常不错,可以很好的减少浇水代码。关于KVO的学习,可以参考文章:《Key-Value Observing快速入门》:http://www.cocoadev.cn/Objective-C/Key-Value-Observing-Quick-Start-cn.aspKVO概念: KVO是cocoa中的转载 2012-06-19 23:16:36 · 5438 阅读 · 0 评论 -
iOS NSOperationQueue的使用
NSInvocation用来呈现objective-C静态消息,即将动作转换为一个对象。NSInvocation对象用来在对象或者应用程序间存储以及转发消息。主要应用于NSTimee对象或者是分布式对象系统中。一个NSInvocation对象包含了所有的OC消息的成分:目标、selector、参数以及返回值。每一个参数能够直接设定,而且当一个NSInvocation对象调度时返回值是自动设定的。同原创 2012-06-19 23:01:44 · 3049 阅读 · 0 评论 -
IOS 多线程使用
不管是mac os X还是IOS都支持多个层次的多线程编程。创建一个低层的线程是相对简单的但是不是很安全的,创建一个高层的线程比较复杂但是比较安全,省去了多线程的同步操作。但是不管什么情况,你必须有一个函数或者方法来作为创建线程的主入口以及必须用一个现有的线程活动来开始线程。下面为了使用线程技术具有更加一般性,展示基本的线程创建过程。 线程创建继承了一些默认的属性,这主要决定于你使原创 2012-06-19 20:39:58 · 4358 阅读 · 0 评论 -
IOS如何根据URL下载内容
In order to download the contents of a URL, an application needs to provide a delegate object that, at a minimum, implements the following delegate methods: connection:didReceiveResponse:, connection:翻译 2012-06-19 17:48:34 · 5899 阅读 · 0 评论 -
Objective-C的self.用法的一些总结
关于什么时间用self. , 其实是和Obj-c的存取方法有关, 不过网上很多人也都这么解答的, 那它为什么和存取方法有关? 怎么有关的? 并没有多少人回答出来. 同时关于内存管理的内容, 请大家看旺财勇士的Objective-C内存管理总结~CC专版 , 有些东西我就不多解释了.进入正题, 我们经常会在官方文档里看到这样的代码:MyClass.h@interface MyClas转载 2012-06-18 00:01:12 · 757 阅读 · 0 评论 -
正确处理 Memory Warning
IPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息。收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露。app收到Memory Warning后会调用:UIApplication::didReceiveMemoryWarning -> UIApplicationDelegate::applic转载 2012-06-17 23:52:14 · 1317 阅读 · 0 评论