【iOS Programming: The Big Nerd Ranch Guide】【笔记】1

本文探讨了Objective-C中初始化方法的最佳实践,包括如何正确访问变量、子类重写父类初始化方法的方法、使用self代替类名的重要性,以及Objective-C数组的特性与限制等关键编程技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1.在类中的init的方法里,应该使用_value而不用self.value的形式访问变量,因为初始化正在进行中,对象还没有完成构造,所以不能确定实例变量都能有效的赋值

 

2.首先特定的init初始化方法需要调用父类的特定init方法,然后其他的init方法都调用这个特定的init方法

如果子类声明的特定init方法和父类的特定init方法不一样,就需要子类覆写(override)父类的特定init方法并调用子类已有的特定init方法

 

3.在类方法里应该使用self来代替类名,使得他的子类也可以同样的发送消息

+ (instancetype)randomItem

{

  BNRItem *newItem = [[self alloc] initWithItemName:randomName valueInDollars:randomValue serialNumber:randomSerialNumber];

  return newItem;

}

 

4.Objective-C中的array只能保存OC对象,所以不能添加基础类型和C语音的结构体,可以先将这些数据转化成OC的NSNumber、NSValue、NSData后添加到array中

不能将nil添加到array中,但是可以用NSNull对象,NSNull表示对象已经为nil,一般被用来做特殊操作

[items addObject:[NSNull null]];

 

5.unrecognized selector sent to instance 0x100117280’ 这个错误表示该实例中没有想要调用的方法

(You sent a message to an object, and the object does not implement that method)

 

 6.OC中没有命名空间(namespace),而是使用在类名上添加前缀的方式

NS前缀代表NeXTSTEP公司

 

7.#import and @import

OC会预编译一些系统库并缓存,避免每次在头文件中引用这些库的时候都需要重新编译一次,所以在调用系统库的头文件时可以使用@import Foundation的方式

 

转载于:https://www.cnblogs.com/afluy/p/5015408.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值