iOS——2018面试题

1. 这段代码有什么问题吗:

@implementationPerson

-(void)setAge:(int)newAge {

self.age= newAge;

}

@end

 

2. 类变量的@protected ,@private,@public,@package,声明各有什么含义?

 

3.谈谈你对多线程开发的理解?ios中有几种实现多线程的方法?

[if !supportLineBreakNewLine]

[endif]

4.深拷贝和浅拷贝的理解?

5. 设计模式是什么?

你知道哪些设计模式,并简要叙述?

6.block的注意点

7. 如何高性能的给UIImageView 加个圆角?

8.HTTP协议中 POST 方法和 GET 方法有那些区别?

9.谈谈 UITableView 的优化

10. 如何实行cell的动态的行高

11.什么是 KVO 和 KVC?

12. 什么是懒加载?

13. 苹果内购实现流程

14. 怎么用 copy 关键字?

15. 用@property声明的NSString / NSArray / NSDictionary 经常使用 copy 关键字,为什么?如果改用strong关键字,可能造成什么问题?

16. 为什么我们常见的delegate属性都用是week而不是retain/strong?

 

17. isKindOfClass、isMemberOfClass、selector作用分别是什么

 

18. delegate 和notification 的区别

 

19. 以下代码运行结果如何?

- (void)viewDidLoad {    

  [superviewDidLoad];   

  NSLog(@"1");    

  dispatch_sync(dispatch_get_main_queue(),^{        

    NSLog(@"2");    

  });    

  NSLog(@"3");

}

 

20.NSTimer创建后,会在哪个线程运行

你可能感兴趣的:(iOS——2018面试题)