1.用obj-c写一个冒泡排序
NSMutableArray *array = [NSMutableArray arrayWithArray:@[@"3",@"1",@"10",@"5",@"2",@"7",@"12",@"4",@"8"]];
NSString *tmp;
for (int i = 0; i < array.count; i ++) {
for (int j = 0; j < array.count - 1; j++) {
if ([[array objectAtIndex:j] integerValue] > [[array objectAtIndex:j + 1] integerValue]) {
tmp = [array objectAtIndex:j];
[array replaceObjectAtIndex:j withObject:[array objectAtIndex:j + 1]];
[array replaceObjectAtIndex:j + 1 withObject:tmp];
}
}
}
2.简述你对UIView、UIWindow和CALayer的理解
UIView继承于UIResponder, UIResponder继承于NSObject,UIView可以响应用户事件。CALayer继承于NSObject,所以CALayer不能响应事件。
UIView构建界面,UIView侧重于对内容的管理,CALayer侧重于对内容的绘制。
UIView是用来显示内容的,可以处理用户事件;CALayer是用来绘制内容的,对内容进行动画处理依赖与UIView来进行显示,不能处理用户事件。
3.写一个完整的代理,包括声明,实现
//创建 @protocol BeforeMarriedDelagate <NSObject> @required
-(void)doCook:(NSString *)foodName; -(void)doHomework; @optional -(void)driveCar;
-(void)makeMoney; @end
//声明 @interface Boy : NSObject< BeforeMarriedDelagate>
-(void)doCook:(NSString *)foodName; -(void)doHomework; -(void)makeMoney; //实现
@implementation Boy -(void)doCook:(NSString *)foodName { NSLog(@"做饭:%@!",foodName);} -(void)doHomework { NSLog(@"今天洗衣服!");} -(void)makeMoney { NSLog(@"Coding!!");} @end
4.分析json、xml的区别?json、xml解析方式的底层是如何处理的?
区别: json底层原理便利字符串中的字符,最终根据各市规定的特助字符,比如{},[],:号等进行区分,{}是字典,[]表示的时数组,:号是字典的键和值的分水岭,最总是将json数据转化为字典。Xml两种解析方式,DOM和SAX,DOM需要读入整个XML文档(文档驱动),SAX是事件驱动的,并不需要读入整个文档,文档的读入过程也就是SAX的解析过程。
5.ViewController 的 didReceiveMemoryWarning 是在什么时候被调用的?默认的操作是什么?
didReceiveMemoryWarning在出现内存警告的时候执行该方法,在该方法里面释放掉暂时没使用的可重用的对象。
NSMutableArray *array = [NSMutableArray arrayWithArray:@[@"3",@"1",@"10",@"5",@"2",@"7",@"12",@"4",@"8"]];
NSString *tmp;
for (int i = 0; i < array.count; i ++) {
for (int j = 0; j < array.count - 1; j++) {
if ([[array objectAtIndex:j] integerValue] > [[array objectAtIndex:j + 1] integerValue]) {
tmp = [array objectAtIndex:j];
[array replaceObjectAtIndex:j withObject:[array objectAtIndex:j + 1]];
[array replaceObjectAtIndex:j + 1 withObject:tmp];
}
}
}
2.简述你对UIView、UIWindow和CALayer的理解
UIView继承于UIResponder, UIResponder继承于NSObject,UIView可以响应用户事件。CALayer继承于NSObject,所以CALayer不能响应事件。
UIView构建界面,UIView侧重于对内容的管理,CALayer侧重于对内容的绘制。
UIView是用来显示内容的,可以处理用户事件;CALayer是用来绘制内容的,对内容进行动画处理依赖与UIView来进行显示,不能处理用户事件。
3.写一个完整的代理,包括声明,实现
//创建 @protocol BeforeMarriedDelagate <NSObject> @required
-(void)doCook:(NSString *)foodName; -(void)doHomework; @optional -(void)driveCar;
-(void)makeMoney; @end
//声明 @interface Boy : NSObject< BeforeMarriedDelagate>
-(void)doCook:(NSString *)foodName; -(void)doHomework; -(void)makeMoney; //实现
@implementation Boy -(void)doCook:(NSString *)foodName { NSLog(@"做饭:%@!",foodName);} -(void)doHomework { NSLog(@"今天洗衣服!");} -(void)makeMoney { NSLog(@"Coding!!");} @end
4.分析json、xml的区别?json、xml解析方式的底层是如何处理的?
区别: json底层原理便利字符串中的字符,最终根据各市规定的特助字符,比如{},[],:号等进行区分,{}是字典,[]表示的时数组,:号是字典的键和值的分水岭,最总是将json数据转化为字典。Xml两种解析方式,DOM和SAX,DOM需要读入整个XML文档(文档驱动),SAX是事件驱动的,并不需要读入整个文档,文档的读入过程也就是SAX的解析过程。
5.ViewController 的 didReceiveMemoryWarning 是在什么时候被调用的?默认的操作是什么?
didReceiveMemoryWarning在出现内存警告的时候执行该方法,在该方法里面释放掉暂时没使用的可重用的对象。