Object和普通变量的区别

If you’re used to using terms like the stack and the heap, a local variable is allocated on the stack, while objects are allocated on the heap.

- (void)f
{
int a = ; //Stack
NSString *s = @"Hello"; //Heap
}

函数f中,a指向的内存在栈中,函数退出的时候变量a将不能再被访问,其内存也会被释放;s指向的内存在堆中,函数退出的时候s也不能再被访问,但是s指向的内存可能继续存在。

Factory Method v.s. Abstract Factory

Todo 等查找资料后再补上

Objective-C是一门动态语言

id someObject = @"Hello, World!";
[someObject removeAllObjects];

编译时,someObject是一个id类型,所以编译器不会报错。
运行时,编译器会出现Runtime Error因为NSString对象不能响应removeAllObjects.

NSString *someObject = @"Hello, World!";
[someObject removeAllObjects];

编译时,编译器知道someObject是一个NSString类型,NSString对象不能响应removeAllObjects,所以编译时编译器会报错

等于/不等于

//基本类型
if (someInteger == )
{
// someInteger has the value 42
} //比较是否是同一个对象
if (firstPerson == secondPerson)
{
// firstPerson is the same object as secondPerson
} //比较2个对象的内容是否相等
if ([firstPerson isEqual:secondPerson])
{
// firstPerson is identical to secondPerson
} //NSNumber, NSString and NSDate等类型比较大小不能用>、<,应该用compare:方法
if ([someDate compare:anotherDate] == NSOrderedAscending)
{
// someDate is earlier than anotherDate
}

《Programming with Objective-C》第三章 Working with Objects的更多相关文章

  1. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第三章:变换

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第三章:变换 学习目标 理解如何用矩阵表示线性变换和仿射变换: 学习在 ...

  2. [转]Windows Shell 编程 第三章 【转自:http://blog.csdn.net/wangqiulin123456/article/details/7987901】

    第三章 操作文件 我依然清楚地记得,Windows95 的贝塔版出现的情形,它在朋友之间和学院中传播,好酷,全新的文件管理器,一种全图标,全彩色可客户化的界面,以及活泼的动画标识使得在文件拷贝和删除方 ...

  3. 第三章 传奇的开始--Delphi(附读书笔记)

    第三章 传奇的开始--Delphi "是惊世之作的Delphi让Borland重新站了起来,没有当初的Delphi,就没有今日的Borland!" "是Turbo Pas ...

  4. 《Programming WPF》翻译 第9章 3.自定义功能

    原文:<Programming WPF>翻译 第9章 3.自定义功能 一旦你挑选好一个基类,你将要为你的控件设计一个API.大部分WPF元素提供属性暴露了多数功能,事件,命令,因为他们从框 ...

  5. 《Programming WPF》翻译 第8章 4.关键帧动画

    原文:<Programming WPF>翻译 第8章 4.关键帧动画 到目前为止,我们只看到简单的点到点的动画.我们使用了To和From属性或者By属性来设计动画--相对于当前的属性值.这 ...

  6. 《Programming WPF》翻译 第8章 3.Storyboard

    原文:<Programming WPF>翻译 第8章 3.Storyboard Storyboard是动画的集合.如果你使用了标记,所有的动画必须要被定义在一个Storyboard中.(在 ...

  7. 《Programming WPF》翻译 第8章 2.Timeline

    原文:<Programming WPF>翻译 第8章 2.Timeline Timeline代表了时间的延伸.它通常还描述了一个或多个在这段时间所发生的事情.例如,在前面章节描述的动画类型 ...

  8. 《Programming WPF》翻译 第7章 3.笔刷和钢笔

    原文:<Programming WPF>翻译 第7章 3.笔刷和钢笔 为了在屏幕上绘制一个图形,WPF需要知道你想要为图形填充什么颜色以及如何绘制它的边框.WPF提供了一些Brush类型支 ...

  9. 《Programming WPF》翻译 第7章 1.图形基础

    原文:<Programming WPF>翻译 第7章 1.图形基础 WPF使得在你的应用程序中使用图形很容易,以及更容易开发你的显卡的能力.这有很多图形构架的方面来达到这个目标.其中最重要 ...

随机推荐

  1. CentOS 6.5 无网环境安装R及Rstudio的方法的方法

    在生产环节,一般是不联网的,下面介绍在无望环境如何安装R及R-studio 1.  安装CentOS for R语言的基础环境 1.1 libpng,X11,libjpeg等支持 yum -y ins ...

  2. Javascript创建对象的学习和使用

    <html> <head> <meta charset="utf-8"> <title>javascript对象的学习</ti ...

  3. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  4. 关于 ‘--exec’ 参数( find 命令)及介绍 ‘xargs ’命令区别(新版)

    前言: find 命令一直都是系统管理员的常用命令之一, 其参数中 "-exec" 尤其实用.而 "xargs" 命令,针对查询也有属于自己的见解.本文着重讲解 ...

  5. python爬虫代码

    原创python爬虫代码 主要用到urllib2.BeautifulSoup模块 #encoding=utf-8 import re import requests import urllib2 im ...

  6. Android开源源码推荐(一)

    1.Android-ViewPagerIndicator http://www.akaifa.com/code/86/android-viewpagerindicator 实现各种样式的滑动视图(Sc ...

  7. 安装配置NFS服务

    超级好的配置centos下服务的链接 http://www.server-world.info/en/note?os=CentOS_6&p=nfs http://linux.vbird.org ...

  8. [Aaronyang] 写给自己的WPF4.5 笔记21 [3d课 2/4]

    1. 当然复杂的3d模型我们是可以通过更专业的工具做出来,然后导入项目中,我们只是方便演示,选择简单的图形. Tip: 关于摄像机的NearPlaneDistance和FarPlaneDistance ...

  9. C++实现单例模式

    昨天面试的时候,面试官让我用C++或Java实现一个单例模式. 因为设计模式是在12年的时候学习过这门课,而且当时觉得这门课很有意思,所以就把课本读了几遍,所以印象比较深刻,但是因为实际编程中很少注意 ...

  10. jquery.jqzoom.js图片放大镜

    jqzoom插件实现图片放大镜效果 1. jquery.jqzoom.js //************************************************************ ...