1.以下情况的打印结果
NSArray *arr = [NSString stringWithFormat:@"abc"];
NSLog(@"%@", arr);
NSString *str = arr;
NSLog(@"%@",str);
2016-08-26 10:23:45.364 SomeThing[45895:1817616] abc
2016-08-26 10:23:45.365 SomeThing[45895:1817616] abc
2.OC是强类型还是弱类型语言?
强类型:为所有变量指定数据类型称为“强类型”。
强/弱类型是指类型检查的严格程度的。语言有无类型,弱类型和强类型三种。无类型的不检查,甚至不区分指令和数据。弱类型的检查很弱,仅能严格的区分指令和数据。强类型的则严格的在编译期进行检查。
强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作。Java、C# 、Apex和 Python 等都是强类型语言。
3.写一个冒泡排序,时间复杂度
- (void)bubSort:(NSMutableArray *)arr{
for (int i = 0; i < arr.count; i++) {
for (int j = 0; j < arr.count - i - 1; j++) {
if ([arr[j+1] integerValue] < [arr[j] integerValue]) {
NSInteger temp = [arr[j+1] integerValue];
arr[j+1] = arr[j];
arr[j] = [NSNumber numberWithInteger:temp];
}
}
}
}
时间复杂度为log(n^2)
4.写一个折半查找,时间复杂度
- (NSInteger)binSearch:(NSArray *)arr number:(NSInteger)num{
NSInteger low = 0;
NSInteger high = arr.count - 1;
while (low <= high) {
NSInteger mid = (low + high)/2;
if (num < [arr[mid] integerValue]) {
high = mid - 1;
}else if (num >= [arr[mid] integerValue]){
low = mid + 1;
}else{
return mid;
}
}
return -1;
}
时间复杂度为O(n^2)
5.分类和继承的区别
分类:可以扩展类方法,不能定义新成员,可以访问私有成员
继承:可以通过覆盖和定义新方法扩展父类,可以新增成员,但是不能访问父类私有成员
分类会覆盖原同名方法,将不同的方法写入不同的文件中,更适合团队开发,而且分类更小巧灵活
6.iOS沙盒的目录结构
Documents iTunes:会同步该目录,适合存放重要数据
Library/Caches: iTunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据。
Library/Preferences: iTunes同步该应用时会同步此文件夹中的内容,通常保存应用的设置信息。
tmp: iTunes不会同步此文件夹,系统可能在应用没运行时就删除该目录下的文件,所以此目录适合保存应用中的一些临时文件,用完就删除。
7.get和post的区别
- GET使用URL或Cookie传参。而POST将数据放在BODY中。
- GET的URL会有长度上的限制,则POST的数据则可以非常大。
- POST比GET安全,因为数据在地址栏上不可见
8.如何开启一个常驻线程
9.深拷贝和浅拷贝
- 深拷贝:对象拷贝
- 浅拷贝:地址拷贝
- 在非集合类对象中:对****immutable****对象进行****copy****操作,是指针复制,****mutableCopy****操作时内容复制;对****mutable****对象进行****copy****和****mutableCopy****都是内容复制。
网友评论