下载此文档

iOS工程师面试笔试题.pdf


文档分类:通信/电子 | 页数:约12页 举报非法文档有奖
1/ 12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/ 12 下载此文档
文档列表 文档介绍
: .
iOS 工程师面试笔试题
对象的引用计数+1,不再使用该对象时,谁就应该使该对象的
引用计数-1。

9. 自动生成 getter/setter 方法

参考答案:

对于以前的代码,那时还没有 property,使用这样的方法来创建:

- (void)setName:(NSString *)aName;
- (NSString *)name;

在后面有了 property,直接使用***@property (nonatomic, copy) NSString
*name 这样的方法来声明,编译器会自动生成 getter/setter 方法并生成一个
_name 成员变量。

10. 什么是 MVC

参考答案:

我相信大部分人在被问到这个问题时,都会回答 M 就是 Model,V 就是 View,C
就是 Controller。这都是停留在概念上的回答,明显没有什么工作经验。对于
一个对框架和架构有一定的思想的人,回答时会从项目的耦合度、团队开发如何减少冲突、如何降低团队与团队之间的沟通成本、如何将 M、V、C 之间按照
既定的标准建立沟通的桥梁。

Model 用于处理数据,通常来说,Model 中会包含多个字段,用于存储数据。但
是,Model 还会有一部分逻辑,比如说:

***@interface TestModel: HYBBaseModel
// 这个是接口返回的字段,1 表示 XXX,2 表示 YYY,3 表示 ZZZ
***@property (nonatomic, assign) NSUInteger type;
// 这个不是接口返回的字段,但是由于`type`字段是一个数值,不是`view`需
要显示的数据
// 所以我们最好将逻辑统一放到这里来,外部只管获取最终显示需要的值即
可。即使哪天接口
// 返回的字段变化或者增加什么新的值,只需要处理这个模型内部就好了。
***@property (nonatomic, copy, readonly) NSString relationship;
***@end

对于 View,不应该包含逻辑,应该根据模型直接获取数据。

对于 Controller,大部分交互逻辑都集中到了这里,所有 View 需要的数据,
都是通过 Controller 提取 Model 然后交给 view 去显示数据。

11. 重写 getter/setter 方法

假设声明属性:***@property (nonatomic, copy) NSString *blogName;
重写这个属性的 getter/setter 方法:

参考答案:

这里一旦连 getter 方法也重写,编译器不会给我们自动生成成员变量
_blogName,因此我们需要在类的声明中添加一个成员变量_blogName:

***@interface Demo () {
NSString *_blogName;
}
***@end

在自动内存管理下(ARC):

- (void)setBlogName:(NSString *)aName {
if (_blogName != aName) {
_blogName = nil;
_blogName = [aName copy];
}
}
- (NSString *)blogName {
return _blogName;
}对于手动内存管理(MRC):
- (void)setBlogName:(NSString *)aName {

iOS工程师面试笔试题 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数 12
  • 收藏数 0 收藏
  • 顶次数 0
  • 上传人 妙玉
  • 文件大小 110 KB
  • 时间2022-08-17
最近更新