• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

《Programming with Objective-C》第三章 Working with Objects

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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 = 2;                    //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 == 42) 
{
    // 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
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap