Objective-C 编程基础与高级特性解析
1. 传统方法定义的困境与属性的引入
在早期的 Objective - C 编程中,为实例变量创建访问方法是一件繁琐的事情。例如下面的代码:
- (void)setLastName:(NSString *)name
{
lastName = name;
}
- (void)setBirthYear:(NSInteger)year
{
birthYear = year;
}
创建这些方法需要大量的输入和文件切换,而且如果要更改某个名称,需要在多个地方进行修改。为了解决这些问题,Objective - C 引入了属性(Properties)的概念。
属性是一种在类中定义访问方法的方式。例如:
@property (nonatomic, copy) NSString *firstName;
这个声明有几个要点:
- 它告知了变量的类型和名称,相当于以下两行代码:
- (NSString *)firstName;
- (void)setFirstName:(NSString *)firstName;
声明属性后,我们可以引用并实现这些方法,而无需按名称声明它们。
- 括号中的单词定义了变量的使用信息。 nonatomic
用于定义线程访