Objective-C
文章平均质量分 93
wangzz
专注于IOS应用开发 业余时间学习Java和Android 欢迎关注我的微信公共账号wangzzstrive
展开
-
Objective-c中的self和super
转载自:http://web2.0coder.com/archives/305在 Objective-C 中的类实现中经常看到这两个关键字 ”self” 和 ”super”,以以前 oop 语言的经验,拿 c++ 为例,self 相当于 this,super 相当于调用父类的方法,这么看起来是很容易理解的。以下面的代码为例:@interface Person:N转载 2013-01-09 19:53:25 · 6744 阅读 · 1 评论 -
ARC使用心得(二)
四、使用ARC需要注意的问题1、ARC中读写相关的属性读写相关的属性有 readwrite 和 readonly 两种,如果使用ARC之后,我么需要注意一下 readonly 属性的使用。比如下面的变量声明:@property (nonatomic, readonly) NSString *name;前边说过,NSString类型的指针的默认属性是strong,按理说应该不需要持有所有权了,但是在ARC有效的情况下,将出现下面的错误信息 :“ARC forbids synthesizing原创 2013-11-21 18:25:33 · 6788 阅读 · 1 评论 -
ARC使用心得(一)
很久没有更新日志了,最近的一个月经历了一段炼狱般的开发周期,那动不动加班到凌晨几点的日子,说多了都是泪。。。项目组在三周时间内完成了两个月的工作量,疯狂的赶工期,使得开发过程中没时间研究某个功能使用哪种方式更好,只求能实现,因此也没学到什么新东西,唯一的收获就是学会了ARC的基本使用。可能是用惯了手动内存管理,而且基本上不会有内存泄露的的情况发生,当项目组领导说在新项目中要使用ARC的时候,还有一定的抵触情绪。被赶鸭子上架般的强制要求使用了以后,慢慢被它的优点吸引,ARC确实大大减少了我们开发过程中在内原创 2013-11-20 20:11:45 · 6363 阅读 · 0 评论 -
Objective-C中的instancetype和id关键字
一、什么是instancetypeinstancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象。我们都知道未知类型的的对象可以用id关键字表示,那为什么还会再有一个instancetype呢?二、关联返回类型(related result types)根据Cocoa的命名规则,满足下述规则的方法:1、类方法中,以alloc或new开头2、实例方法中,以autorelease,init,retain或self开头会返回一个原创 2013-11-28 19:48:37 · 26308 阅读 · 7 评论 -
内存管理原理----《Objective-C高级编程:iOS与OS X多线程和内存管理》读书笔记
《Objective-C高级编程:iOS与OS X多线程和内存管理》读书笔记作者:wangzz原文地址:http://blog.csdn.net/wzzvictory/article/details/17694129转载请注明出处如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!一、前言这本书由日本人Kazuki Sakamoto和Tomohiko Furumoto所著,主要讲了ARC、Blocks、GCD三个模块。总体来说,书的内容讲的挺深的,小原创 2014-01-16 23:31:13 · 9991 阅读 · 1 评论 -
Objective-C runtime之消息转发机制(三)
学了那么久的Objective-C,给我的感觉就是它什么都是动态的,你将会听到一个新的名词:一、动态方法解析1、+(BOOL) resolveInstanceMethod:(SEL) sel这是NSObject根类提供的类方法,调用时机为当被调用的方法实现部分没有找到,而消息转发机制启动之前的这个中间时刻。2、@dynamic关键字Objective-C2.0 提供了@dyna原创 2013-03-02 16:58:37 · 16443 阅读 · 5 评论 -
IOS如何选择图片加载方式:imageNamed和imageWithContentsOfFile的区别
IOS内存稀缺,而图片资源通常又是最占内存的部分之一,因此,选择如何加载图片,对于优化应用内存占用量,能起到立竿见影的效果。通常加载图片的方式有两种:1、imageNamed为什么有两种方法完成同样的事情呢?imageNamed的优点在于可以缓存已经加载的图片。苹果的文档中有如下说法:This method looks in the system caches for an image原创 2013-06-08 10:33:57 · 20080 阅读 · 1 评论 -
Objective-C runtime之消息(二)
今天开始说说runtime system中最关键的消息相关内容。一、runtime中的消息1、什么是消息进入今天的正题之前,先来说说跟message息息相关的几个概念①message(消息)message的具体定义很难说,因为并没有真正的代码描述,简单的讲message 是一种抽象,包括了函数名+参数列表,他并没有实际的实体存在。②method(方法)method是真正原创 2013-02-28 15:33:52 · 14451 阅读 · 6 评论 -
博客搬家啦!
Hi, 我的个人博客搬家啦!从此本博客不会再有更新,博客更新全部转移到新地址:http://wangzz.github.io/ 欢迎大家继续关注! 谢谢支持!原创 2014-05-09 23:39:29 · 4742 阅读 · 2 评论 -
Objective-C非正式协议与正式协议
这两个概念困扰我很久了,一直都很像搞清楚到非正式协议和正式协议有什么区别和联系,下面结合网上的资料和自己的看法谈谈这个问题。一、非正式协议显然这个名词是相对于正式协议而言的。在解释非正式协议之前,先引用两段话:1、在《Cocoa设计模式》第六章类别的6.3.2把类别用于非正式协议一节中,这样写到:非正式协议通常定义为NSObject的类别。类别接口中指定的方法可能会或者可能不会被框原创 2013-07-11 22:51:10 · 8264 阅读 · 3 评论 -
Cocoa中retainCount返回值不准的原因
Cocoa中retainCount返回值不准的原因作者:wangzz原文地址:http://blog.csdn.net/wzzvictory_tjsd/article/details/9626017转载请注明出处在使用手动内存管理的程序中,为了验证引用计数的管理是否存在问题,经常使用retainCount方法来返回当前的对象引用计数,如下所示: UIB原创 2013-07-30 12:14:50 · 5706 阅读 · 1 评论 -
Objective-C通过联合存储为类增加属性及原理解析
联合存储实现方式及底层原理解析作者:wangzz原文地址:http://blog.csdn.net/wzzvictory_tjsd/article/details/9347981转载请注明出处动态语言的最大好处,就是灵活性,主要用到了三种设计模式:1、访问器(accessor)2、类别(category)3、联合存储(associ原创 2013-07-18 23:55:40 · 5791 阅读 · 0 评论 -
Objective-C之run loop详解
Objective-C之run loop详解 做了一年多的IOS开发,对IOS和Objective-C深层次的了解还十分有限,大多还停留在会用API的级别,这是件挺可悲的事情。想学好一门语言还是需要深层次的了解它,这样才能在使用的时候得心应手,出现各种怪异的问题时不至于不知所措。废话少说,进入今天的正题。不知道大家有没有想过这个问题,一个应用开始运行以后放在那里,如果不对它进行任何操作原创 2013-07-03 21:53:24 · 44004 阅读 · 6 评论 -
Cocoa是什么???
某次上班路上,同事问我:什么是Cocoa?当时楞了一下,对呀,什么是Cocoa?做了将近一年的iPhone应用开发,成天跟它打交道,竟然还不知道这是个什么东西。。。一、什么是Cocoa①Cocoa的来源早些年,苹果公司启动了Copland计划,致力于开发出自己的操作系统,可惜后来Copland计划逐渐的失控了,苹果公司最终决定放弃开发,转向从别的公司购买下 一个版本的Mac OS。在经原创 2013-03-03 16:45:13 · 20675 阅读 · 3 评论 -
NSNumber和NSValue对基础C数据类型的对象化封装
由于Objective-C中常用的数据容器,如NSArray,NSDictionary等,只能处理Objective-C中的对象级别的数据类型,对于C中的很多数据类型,如int,float等,无法直接处理。针对这个问题,Objective-C提供了两种存储数据的对象NSNumber和NSValue,能将C中的基本数据类型,包括数值型和结构体型的数据转化成Objective-C可以处理的对象。N原创 2013-02-26 16:52:45 · 6304 阅读 · 0 评论 -
Objective-C对象之类对象和元类对象(一)
作为C语言的超集,面向对象成为Objective-C与C语言的最大区别,因此,对象是Objective-C中最重要的部分之一。目前面向对象的语言有很多,Objective-C中的对象又和其他语言中的对象有什么区别呢?下面来简单介绍Objective-C中对象的实现。1、Objective-C中的类谁都知道,所有的对象都是由其对应的类实例化而来,殊不知类本身也是一种对象,先不要对这句话感到惊原创 2013-02-19 23:44:05 · 14173 阅读 · 10 评论 -
NSNotification的几点说明
1、NSNotification消息的同步性①NSNotification使用的是同步操作。即如果你在程序中的A位置post了一个NSNotification,在B位置注册了一个observer,通知发出后,必须等到B位置的通知回调执行完以后才能返回到A处继续往下执行。因此,不要过多的或者低效的使用NSNotification,《Cocoa基本原理指南》一文推荐的方式是通过一些“中间的”观原创 2013-01-10 13:13:38 · 6502 阅读 · 0 评论 -
Objective-C runtime之运行时的基本特点(一)
作为一门动态编程语言,Objective-C 会尽可能的将编译和链接时要做的事情推迟到运行时。只要有可能,Objective-C 总是使用动态 的方式来解决问题。这意味着 Objective-C 语言不仅需要一个编译环境,同时也需要一个运行时系统来执行编译好的代码。运行时系统(runtime)扮演的角色类似于 Objective-C 语言的操作系统,Objective-C 基于该系统来工作。因此,原创 2013-02-26 23:08:48 · 21899 阅读 · 2 评论 -
Objective-C对象之初始化和两段构造法(二)
Objective-C为我们提供了两种初始化对象的方法:Objective-C2.0以后可用的new方法和两段构造法。既然要比较这两种初始化方法,就从它们本身的异同出发吧。一、两段构造法这是Objective-C特有的对象创建方法,书写形式如下:NSString*s=[[NSString alloc] init];所谓的两段构造,就是指将alloc和init分开来写,这和大多数原创 2013-02-20 23:31:57 · 3444 阅读 · 0 评论 -
nil/Nil/NULL/NSNull的区别
nil/Nil/NULL/NSNull的区别作者:wangzz原文地址:http://blog.csdn.net/wzzvictory/article/details/18413519转载请注明出处如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!平时开发过程中经常遇到这几个表示空的关键字:nil、Nil、NULL,一向搞不清楚,作为一个有两年开发经验的程序员,连那么基础的东西都不知道未免太丢人了。首先要说明的是,nil、Nil、NULL三个关键字和原创 2014-01-18 14:11:57 · 10597 阅读 · 4 评论