- 浏览: 906251 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (466)
- iPhone, iOS , Objective-c (155)
- 数据库 (20)
- 设计模式 (5)
- 第三方包管理,cocoapod (2)
- 版本管理, SVN, Subversion, Git (1)
- Google, Android, Java (14)
- Wordpress (1)
- 职业素养 (3)
- 版本管理,git (3)
- 前端小技巧 (2)
- flash (1)
- javascript (5)
- Ruby (0)
- 编程语言 (1)
- 网络常识 (1)
- 找到生活好感觉 (5)
- 产品经理 (1)
- markdown (1)
- 云服务器 (1)
- iPhone (116)
- iOS (116)
- Objective-c (116)
- 学习技巧 (2)
- Google (5)
- Android (6)
- Java (21)
- python (1)
- sqlite (3)
- node.js (2)
- mongodb (2)
- 学习技巧,阅读 (2)
- 软件测试 (3)
- 架构设计 (2)
- 设计 (1)
- Spring framework (3)
- junit (1)
- Linux (2)
- 软件 (1)
- Struts2 (1)
- 版本管理 (3)
- SVN (3)
- Subversion (3)
- Git (3)
- mysql (5)
- quartz (1)
- 无关技术 (1)
- 前端 (1)
- Redis (1)
- 产品管理 (0)
- 计算机常识 (1)
- 计算机科学 (0)
- swift (1)
- 服务器 (2)
- 搜索 (1)
- Scala (1)
- J2EE (1)
- maven (1)
- 前端css (1)
- 英语 (1)
- 消息队列 (1)
- kafka (0)
- apache kafka (4)
- netbeans (1)
- IDE (2)
- 歌词 (1)
- 过滤器实现 (1)
- linux vim vi (1)
- jmeter (1)
- springcloud (1)
最新评论
-
hujingnemo:
不知道为什么打不开
CHM如何改编字体大小 -
weiboyuan:
求答案 weiboyuanios@163.com
iOS软件工程师面试题(高级) -
xueji5368:
这个现在已经广泛使用了嘛!
RoboGuice入门 -
Yao__Shun__Yu:
...
CHM如何改编字体大小 -
353144886:
非常之详细 美女求认识
sqlite数据类型 datetime处理
事实1:实例变量存储在结构中
定义一个新类和它的实例变量时,这些实例变量实际上存放在一个结构中。这说明了可以如何处理对象,对象实际上是结构,结构中的成员是实例变量。所以继承的实例变量加上你在类中添加的变量就组成了一个结构。使用alloc分配新对象时,系统预留了足够的空间来存储这些结构。
结构中继承的成员(从根对象中获得的)之一是名为isa的保护成员,它确定对象所属的类,因为它是结构的一部分(因此,也是对象的一部分),所以由对象携带。这样,运行时系统只需要通过查看isa成员,就可以确定对象的类(即使将其赋给通用的id对象变量)。
事实2:对象变量实际上是指针
定义Fraction之类的对象变量,如
事实上是定义了一个名为myFract的指针变量。这个变量定义为指向Fraction类型的数据,即你的类名称。使用
来创建Fraction的新实例时,是在为Fraction对象的新实例分配存储内存,即存放结构的空间,然后使用结构的指针,并将指针变量myFract存储在其中。
事实3:方法是函数,而消息表达式是函数调用
方法实际上是函数。调用方法时,是在调用与接收者类相关的函数。传递给函数的参数是接收者(self)和方法的参数。所以,无论是函数还是方法,关于传递参数给函数、返回值及自动和静态变量的规则都是一样的。Objective-C编译器通过类名称和方法名称的组合为每个函数产生一个唯一名称。
事实4:id类型是通用指针类型
因为通过指针来引用对象,所以可以自由地将它们在id变量之间来回赋值。因此,返回id类型值的方法只是返回指向内存中某对象的指针。然后可以将该值赋给任何对象变量。因为无论在哪里,对象总是携带着它的isa成员,所以,即使将它存储在id类型的通用变量中,也总是可以确定它的类。
定义一个新类和它的实例变量时,这些实例变量实际上存放在一个结构中。这说明了可以如何处理对象,对象实际上是结构,结构中的成员是实例变量。所以继承的实例变量加上你在类中添加的变量就组成了一个结构。使用alloc分配新对象时,系统预留了足够的空间来存储这些结构。
结构中继承的成员(从根对象中获得的)之一是名为isa的保护成员,它确定对象所属的类,因为它是结构的一部分(因此,也是对象的一部分),所以由对象携带。这样,运行时系统只需要通过查看isa成员,就可以确定对象的类(即使将其赋给通用的id对象变量)。
事实2:对象变量实际上是指针
定义Fraction之类的对象变量,如
Fraction *myFract;
事实上是定义了一个名为myFract的指针变量。这个变量定义为指向Fraction类型的数据,即你的类名称。使用
myFract = [Fraction alloc];
来创建Fraction的新实例时,是在为Fraction对象的新实例分配存储内存,即存放结构的空间,然后使用结构的指针,并将指针变量myFract存储在其中。
事实3:方法是函数,而消息表达式是函数调用
方法实际上是函数。调用方法时,是在调用与接收者类相关的函数。传递给函数的参数是接收者(self)和方法的参数。所以,无论是函数还是方法,关于传递参数给函数、返回值及自动和静态变量的规则都是一样的。Objective-C编译器通过类名称和方法名称的组合为每个函数产生一个唯一名称。
事实4:id类型是通用指针类型
因为通过指针来引用对象,所以可以自由地将它们在id变量之间来回赋值。因此,返回id类型值的方法只是返回指向内存中某对象的指针。然后可以将该值赋给任何对象变量。因为无论在哪里,对象总是携带着它的isa成员,所以,即使将它存储在id类型的通用变量中,也总是可以确定它的类。
发表评论
-
UIImage变为NSData并进行压缩
2014-05-19 20:23 1936//sdk中提供了方法可以直接调用 UIImage *im ... -
update cocapods
2014-05-17 22:27 807早上更新cocoapod依赖库,发现更新到32.1版本,早先的 ... -
iOS发送短信息代码实例
2014-05-16 18:15 2689#import <MessageUI/Message ... -
DISPATCH TIMER
2014-05-14 16:12 732/* __block void (^callback) ... -
UITextField左边显示图片
2014-05-13 18:08 1175The overlay view displayed on t ... -
iOS调用系统打电话,发短信功能
2014-05-11 15:48 2088先介绍一种最简单的方法: 调用打电话功能 [[UIAppl ... -
iOS面试题
2014-05-09 16:10 10821.写一下UIButton与UITableView的层级结构 ... -
socket二进制报文
2014-05-09 15:18 1308里面有帧头 字符串UTF-8 中间用0隔开 又一个字符串 ... -
将网站添加到桌面的方法
2014-05-08 14:25 1664<link href="http://www. ... -
iPhone通讯录联系人操作大全
2014-05-07 10:29 14641.需要引入AddressBook.framework框架 2 ... -
sqlite获取最新插入的rowid
2014-05-07 09:59 1531除了 last_insert_rowid select max ... -
号码归属地查询,拨打电话
2014-05-06 15:07 854在程序内调用拨打电话的方法,[[UIApplication s ... -
iOS时间合并
2014-04-28 17:55 1102合并同一时间的课程,同一时间可能有多个课程,比如13:30-1 ... -
vCard通讯录格式说明
2014-04-28 16:47 2564原帖:http://freesoftman.iteye.com ... -
UISearchBar背景色全套解决方案
2014-04-25 09:36 7448os系统升级到7.1后,原来在7.0下显示正常的UISearc ... -
升级XCode5.1.1遇到的奇葩问题NSString,NSObjectRuntime.h报错,Foundation找不到
2014-04-24 11:19 903升级XCode5.1.1遇到的奇葩问题NSString,NSO ... -
将NSString转为NSArray
2014-04-22 16:52 6274// Your JSON data: NSString *c ... -
另外一种NSData转为NSString的方法
2014-04-22 15:40 1216If the data is not null-termina ... -
HTTP,Socket,WebSocket异同
2014-04-18 16:54 1837参考文章: http://abbshr.g ... -
push隐藏UINavigtaionBar和UITabbar
2014-04-17 15:20 1098[self.navigationController setN ...
相关推荐
因此,《禅与Objective-C》的作者们不得不调整写作方向,考虑到Objective-C虽然仍在使用但关注度逐渐下降的事实,最终决定将现有内容作为最终版本发布,以贡献给开源社区。 #### 社区贡献 本书免费向公众开放,...
C语言的命名取自BCPL的第二个字母,也是B的下一个字母。 C语言的标准与版本 随着计算机技术的发展,C语言也在不断标准化。尽管C语言的标准可能有所变化,但最广泛使用和编译器支持最好的是1999年的C99标准。最新...
Objective-C:是C语言的一个超集,具有面向对象属性。因为语法与C语言差异较大,因此没有C++这么流行。Mac OS X就是由Objective-C开发而成。Objective-C是学习Mac OS X平台软件开发的第一步。 Cocoa:Cocoa是Mac OS ...
因为本书以介绍Objective-C语言的基础知识为内容,即 关于如何使用Xcode的基础知识。通过学习前五章,你将掌握如何在非图形界面下编写基本的代码。 之后的一些章节将教给你如何在图形界面(GUI)下开发简单的程序。...
- **Objective-C语言特性**:深入探讨Objective-C的基础语法、面向对象编程(OOP)特性,如封装、继承、多态等,并且解释了Objective-C如何在运行时支持动态类型和动态绑定。 - **内存管理**:重点讨论了Objective-C中...
它是一套以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划 的关键部分,亦是自由的 类Unix 及苹果计算机 Mac OS X 操作系统的标准...之后也变得可处理 Fortran、Pascal、Objective-C、Java,以及 Ada 与其他语言。
GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它是一套以GPL及LGPL许可证所发布的自由软件,也...之后也变得可处理Fortran、Pascal、Objective-C、Java、Ada,以及Go与其他语言。
因为本书以介绍Objective-C语言的基础知识为内容,即 关于如何使用Xcode的基础知识。通过学习前五章,你将掌握如何在非图形界面下编写基本的代码。 之后的一些章节将教给你如何在图形界面(GUI)下开发简单的程序。...
- **语言基础**:强调了Cocoa基于Objective-C这一编程语言的事实,并简述了该语言的特点及其在Cocoa中的应用。 - **技术栈**:提到了Mac OS X的技术能力和必备知识,如需要掌握C语言和熟悉Mac OS X的技术特性等。 #...
C语言的标准化始于Kernighan和Ritchie合著的《The C Programming Language》一书,这成为了C语言的事实标准,通常被称为K&R C。1989年,ANSI发布了C89/C90标准,随后国际标准化组织(ISO)在1990年推出了ISO/IEC ...
GCC最初是作为GNU C Compiler开发的,但现在支持包括C、C++、Ada、Objective-C、Fortran和Java等多种编程语言。GCC的全称“GNU Compiler Collection”揭示了其作为一组编译器前端的事实,这些前端能够处理各种编程...
除了上面讲的之外,GCC除了支持C语言外,还支持多种其他语言,例如C++、Ada、Java、Objective-C、FORTRAN、Pascal等。 本系列文章中,我们不仅介绍GCC的基本功能,还涉及到一些诸如优化之类的高级功能。另外,我们还...
Swift的兴起使得Objective-C开发者感到地位受到威胁,而原生应用开发者则瞧不上使用PhoneGap等混合开发工具的同行。 在前端开发领域,React.js、AngularJS和jQuery的使用者各自有他们的立场,而JavaScript原生...
在C/C++编程环境中,GCC(GNU Compiler Collection)是一个广泛使用的开源编译器套件,它包括了多种语言的编译器,如C、C++、Objective-C等。其中,`gcc` 和 `g++` 是两个常用的命令行工具,它们在处理C和C++源代码...