iOS基础面试题一
2023-09-14 08:58:20 时间
答:person / personWithAge / personWithAge: / personWithAge: name:
2、NSArray和NSSet有什么使用区别?
(1)NSArray是有序的,而NSSet是无序的。
(2)NSArray数据可以相同,但是NSSet数据是不相同的。
(3)在搜索一个一个元素时NSSet的效率比NSArray高,因为NSSet用到了一个算法hash。比如你要存储和访问一个数据元素A,一个hash算法直接就能找到A的应该存储的位置和存储位置。而NSArray则需要遍历整个数组。
3、定义一个无参返回值的block变量,并且调用这个block?
//没有返回值,没有参数的block
5、你知道Swift是什么么?谈谈对它目前的了解? Swift是苹果新出的一个开发语言,它是基于C语言开发的,比Objective-C更加灵活方便。在不久的将来Swift会取代Objective-C作为iOS开发的主要语言。 6、强引用和弱引用的区别? 强引用是持有对象,弱引用是不持有对象; 强引用可以释放对象,但是弱引用不可以,当一个对象为强引用时,在其作用域之外的话,该对象所持有的对象被释放;当一个对象为弱引用时,,它不持有对象,在对象释放后,它自动被赋值为nil。 7、strong、weak、assign各自使用的场合是什么? assign用于简单数据类型,如NSInteger,double,bool. 在ARC环境下,strong代替retain,weak代替assign; 在循环使用的时候,一端用strong,另一端则需要使用weak,防止循环调用。 OC对象类型一般都是用strong. 8、分类(Category)有什么作用 将类的实现分散到多个不同文件或者多个不同框架中。 创建对私有方法的向前引用。 向对象添加非正式协议。 简单来说就是:Category可以对类进行扩展,可以给所有类添加自己的方法。 9、谈谈你对self和super的理解? 在我的世界观里,self就是一个类的隐藏的参数,指向当前调用方法的类; 而super指的是父类。使用super就会告诉编译器,要去调用父类的方法。super只是一个编译指示符。 10、编译器遇到下面的代码会自动生成哪些代码?
NSArray *names = @[@“mj”,@”jj”,@“jay”]; // NSArray *names = [[NSArray alloc] initWithObjects:@"mj",@"jj",@"jay", nil];
id money = @20; 自动生成: NSNumber *money1 = [[NSNumber alloc] initWithInt:20];
11、用两种不同的思路编写函数来计算下面的式子: 1+2+3+4+。。。。。+n(n =1)(PS:一共要写两个函数,仅仅再for/while/do之间更换不算新的思路) 思路一:
12、使用Category给某类(哪个类自己思考)增加一个方法,用来完成以下功能:假设一个OC可变数组存放着很多整数字符串,比如@“10”、@“20”.要求调用完这个方法之后,这个数组里面的数字字符是升序排列的,(从小到大排列)
NSMutableArray *arr= [[NSMutableArray alloc] initWithCapacity:[mutableArray count]];
NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithObjects:@"5",@"20",@"3",@"60" ,@"50",nil];
13、使用Category给所有OC对象增加一个run方法(对象方法),然后在run方法中NSLog打印对象本身:
计算英文字母的个数(比如@“235432534rre4645eer”,调用方法之后返回6) 字符串反转(比如@“abc”,调用后输出@“cba”) 去除字符串两端空格(比如@“ jack roce ”,调用后返回@“jack rose”) 截取网站域名中的www.和.com之间的字符串(比如@“http://www.baidu.com”,输出baidu)。
NSString *trimmedString = [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSRange needRange =NSMakeRange(wwwRange.length+wwwRange.location, comRange.location-wwwRange.location-wwwRange.length);
15、定义一个书本类,需要有名字、价格、出版年份(比如2014年)三个成员属性,创建5个书本对象,属性可以任意值,但名字不要使用中文 增加一个便利构造方法(工厂方法),用于快速创建对象 使用NSLog直接输出书本对象时,要保证输出字符串格式为:这本书叫做xx,价格是xx,出版年份是xx 对5本书本对象按照出版年份—》价格—》名字优先级从小到大排序(出版年份相同按照价格排序,价格相同按照名字排序)
iOS开发:个人对于textView基础用法的总结(其一) 从事了这么久ios开发,对于textView的使用并不陌生,它和textfield有相似的地方,也有不同的地方,这里只对textView的一些基础用法进行描述,textfield不在这里描述。
做了5年iOS,靠着这份面试题跟答案,我从12K变成了30K 在博主认为,对于iOS面试以及进阶的最佳学习方法莫过于刷题+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷题的过程中有没有去思考,刷题只是次之,这又是一个层次了,这里暂时不提后面再谈。
2019年11月2日:总结iOS技术面试题及应对答案 随着移动互联网技术的不断发展和创新,访谈对于公司和开发人员和设计师来说都是费时且昂贵的项目,面对iOS开发者和设计师在访谈过程中可能遇到的问题,现在为大家总结iOS技术面试题及应对答案。 那些 iOS开发 常备的底层面试题合集! 一、如何绘制UIView? 绘制一个UIView最灵活的方法就是由它自己完成绘制。
携程、阿里、京东、腾讯iOS春招面试过程以及面试题总结! 面经包含:携程、阿里、京东、腾讯 五一假期,春招基本上已经结束了,剩下少量面试和少量流程中。虽然还没有最终决定,不过也还是决定来开个帖子,写一些总结。 楼主是今年春招的时候开始看看面经,真题做的很少,很水=。
5、你知道Swift是什么么?谈谈对它目前的了解? Swift是苹果新出的一个开发语言,它是基于C语言开发的,比Objective-C更加灵活方便。在不久的将来Swift会取代Objective-C作为iOS开发的主要语言。 6、强引用和弱引用的区别? 强引用是持有对象,弱引用是不持有对象; 强引用可以释放对象,但是弱引用不可以,当一个对象为强引用时,在其作用域之外的话,该对象所持有的对象被释放;当一个对象为弱引用时,,它不持有对象,在对象释放后,它自动被赋值为nil。 7、strong、weak、assign各自使用的场合是什么? assign用于简单数据类型,如NSInteger,double,bool. 在ARC环境下,strong代替retain,weak代替assign; 在循环使用的时候,一端用strong,另一端则需要使用weak,防止循环调用。 OC对象类型一般都是用strong. 8、分类(Category)有什么作用 将类的实现分散到多个不同文件或者多个不同框架中。 创建对私有方法的向前引用。 向对象添加非正式协议。 简单来说就是:Category可以对类进行扩展,可以给所有类添加自己的方法。 9、谈谈你对self和super的理解? 在我的世界观里,self就是一个类的隐藏的参数,指向当前调用方法的类; 而super指的是父类。使用super就会告诉编译器,要去调用父类的方法。super只是一个编译指示符。 10、编译器遇到下面的代码会自动生成哪些代码?
NSArray *names = @[@“mj”,@”jj”,@“jay”]; // NSArray *names = [[NSArray alloc] initWithObjects:@"mj",@"jj",@"jay", nil];
id money = @20; 自动生成: NSNumber *money1 = [[NSNumber alloc] initWithInt:20];
11、用两种不同的思路编写函数来计算下面的式子: 1+2+3+4+。。。。。+n(n =1)(PS:一共要写两个函数,仅仅再for/while/do之间更换不算新的思路) 思路一:
12、使用Category给某类(哪个类自己思考)增加一个方法,用来完成以下功能:假设一个OC可变数组存放着很多整数字符串,比如@“10”、@“20”.要求调用完这个方法之后,这个数组里面的数字字符是升序排列的,(从小到大排列)
NSMutableArray *arr= [[NSMutableArray alloc] initWithCapacity:[mutableArray count]];
NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithObjects:@"5",@"20",@"3",@"60" ,@"50",nil];
13、使用Category给所有OC对象增加一个run方法(对象方法),然后在run方法中NSLog打印对象本身:
计算英文字母的个数(比如@“235432534rre4645eer”,调用方法之后返回6) 字符串反转(比如@“abc”,调用后输出@“cba”) 去除字符串两端空格(比如@“ jack roce ”,调用后返回@“jack rose”) 截取网站域名中的www.和.com之间的字符串(比如@“http://www.baidu.com”,输出baidu)。
NSString *trimmedString = [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSRange needRange =NSMakeRange(wwwRange.length+wwwRange.location, comRange.location-wwwRange.location-wwwRange.length);
15、定义一个书本类,需要有名字、价格、出版年份(比如2014年)三个成员属性,创建5个书本对象,属性可以任意值,但名字不要使用中文 增加一个便利构造方法(工厂方法),用于快速创建对象 使用NSLog直接输出书本对象时,要保证输出字符串格式为:这本书叫做xx,价格是xx,出版年份是xx 对5本书本对象按照出版年份—》价格—》名字优先级从小到大排序(出版年份相同按照价格排序,价格相同按照名字排序)
iOS开发:个人对于textView基础用法的总结(其一) 从事了这么久ios开发,对于textView的使用并不陌生,它和textfield有相似的地方,也有不同的地方,这里只对textView的一些基础用法进行描述,textfield不在这里描述。
做了5年iOS,靠着这份面试题跟答案,我从12K变成了30K 在博主认为,对于iOS面试以及进阶的最佳学习方法莫过于刷题+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷题的过程中有没有去思考,刷题只是次之,这又是一个层次了,这里暂时不提后面再谈。
2019年11月2日:总结iOS技术面试题及应对答案 随着移动互联网技术的不断发展和创新,访谈对于公司和开发人员和设计师来说都是费时且昂贵的项目,面对iOS开发者和设计师在访谈过程中可能遇到的问题,现在为大家总结iOS技术面试题及应对答案。 那些 iOS开发 常备的底层面试题合集! 一、如何绘制UIView? 绘制一个UIView最灵活的方法就是由它自己完成绘制。
携程、阿里、京东、腾讯iOS春招面试过程以及面试题总结! 面经包含:携程、阿里、京东、腾讯 五一假期,春招基本上已经结束了,剩下少量面试和少量流程中。虽然还没有最终决定,不过也还是决定来开个帖子,写一些总结。 楼主是今年春招的时候开始看看面经,真题做的很少,很水=。
相关文章
- 苹果交付iOS 6系统 可无线升级
- Flex AIR应用换肤功能(Android和IOS)
- [ IOS ] iOS-控制器View的创建和生命周期
- Unity3d与iOS交互开发——接入平台SDK必备技能
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
- IOS控件:长度单位换算(UITextField,IBAction,委托事件touchesBegan)
- 100个iOS开发面试题汇总
- iOS swift UI视图的布局
- iOS 多线程 swift5 GCD 自己消化的
- iOS 内存管理 面试题总结
- [BEROR]CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 8.1'
- 奔五的人学ios:swift竟然没有字符串包括,找个简单的解决方法
- iOS 内存管理