iOS面试iOS学习开发面试

iOS开发面试梳理(三)

2019-07-13  本文已影响23人  程序员_秃头怪
一、UIViewController的完整生命周期
-[ViewController initWithNibName:bundle:];
-[ViewController init];
-[ViewController loadView];
-[ViewController viewDidLoad];
-[ViewController viewWillAppear:];
-[ViewController viewDidAppear:];
-[ViewController viewWillDisappear:];
-[ViewController viewDidDisappear:];

二、深拷贝和浅拷贝
三、对沙盒的理解

每个iOS应用都被限制在“沙盒”中,沙盒相当于一个加了仅主人可见权限的文件夹,及时在应用程序安装过程中,系统为每个单独的应用程序生成它的主目录和一些关键的子目录。苹果对沙盒有几条限制:

1\. 应用程序在自己的沙盒中运作,但是不能访问任何其他应用程序的沙盒;
2\. 应用之间不能共享数据,沙盒里的文件不能被复制到其他 应用程序的文件夹中,也不能把其他应用文件夹复制到沙盒中;
3\. 苹果禁止任何读写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中;
4\. 沙盒目录里有三个文件夹:Documents——存储应用程序的数据文件,
   存储用户数据或其他定期备份的信息;Library下有两个文件夹,Caches存储应用程序再次启动所需的信息,
   Preferences包含应用程序的偏好设置文件,不可在这更改偏好设置;
   temp存放临时文件即应用程序再次启动不需要的文件。

四、ViewController 的 loadView,、viewDidLoad,、viewDidUnload 分别是在什么时候调用的?
五、@synthesize、@dynamic的理解
六、frame和bounds有什么不同?
七、view的touch事件有哪些?
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

八、property属性的修饰符的作用
九、对于Run Loop的理解
十、SQLite中常用的SQL语句
十一、XIB与Storyboards的优缺点

优点:

缺点:

十二、将字符串“2015-04-10”格式化日期转为NSDate类型
NSString *timeStr = @"2015-04-10";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd";
formatter.timeZone = [NSTimeZone defaultTimeZone];
NSDate *date = [formatter dateFromString:timeStr];
// 2015-04-09 16:00:00 +0000
NSLog(@"%@", date);

十三、UIImageView添加圆角
imgView.layer.cornerRadius = 10;
// 这一行代码是很消耗性能的
imgView.clipsToBounds = YES;

这是离屏渲染(off-screen-rendering),消耗性能的

- (UIImage *)imageWithCornerRadius:(CGFloat)radius {
    CGRect rect = (CGRect){0.f, 0.f, self.size};

    UIGraphicsBeginImageContextWithOptions(self.size, NO, UIScreen.mainScreen.scale);
    CGContextAddPath(UIGraphicsGetCurrentContext(), 
    [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:radius].CGPath);
    CGContextClip(UIGraphicsGetCurrentContext());

    [self drawInRect:rect];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return image;
}

推荐一个iOS技术交流群:923910776!群内有最近整理出来的面试题,以及一些书籍学习资料!也是为了给大部分还在做iOS开发的朋友一个交流圈子!

上一篇 下一篇

猜你喜欢

热点阅读