资源描述
1. OC中,与alloc语义相反的方法是dealloc还是release?与retain语义相反的方法是dealloc还是release?为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?
2. 在一个对象的方法里面:self.name = @"object";与 _name = @"object"有什么不同吗?
3. 这段代码有什么问题吗?
-(void)setAge:(int)newAge{
self.age = newAge;
}
4. 以下每行代码执行后,person对象的retain count分别是多少?
Person *person = [[Person alloc] init];
[person retain];
[person release];
[person release];
Person *person = [[Person alloc] init]; =1
[person retain]; +1 = 2
[person release]; -1 = 1
[person release]; -1 = 0
5. 这段代码有什么问题,如何修改?
for(int i = 0; i < someLargeNumber; i++){
NSString *string = @“Abc”;
string = [string lowercaseString];
string = [string stringByAppendingString:@“xyz”];
NSLog(@“%@“, string);
}
6. 简要叙述面向对象的特点,特别是多态。
7. objective-c 所有对象间的交互是如何实现的?
8. 什么叫数据结构?
9. OC的类可以多继承吗?可以实现多个接口吗?Category是什么?分类中能定义成员变量或属性吗?为什么?重写一个类的方式是继承好还是类别好?为什么?
10. #import与#include有什么区别?@class呢?#import<>与#import”“有什么区别?
11.属性readwrite, readonly, assign, retain, copy, nonatomic各是什么作用?在哪种情况下用?
12. 写一个setter方法用于完成@property(nonatomic, strong)NSString *name, 写一个setter方法用于完成@property(nonatomic, copy)NSString *name
13. 对于语句NSString *obj = [[NSData alloc] init]; obj在编译时与运行时分别是什么类型的对象?
14. 常见的OC的数据类型有哪些? 与C的基本数据类型有什么区别? 如:NSInteger与int
15. id声明的对象有什么特性?
16. OC如何对内存管理的,说说你的看法与解决方法。
17. 你对@interface中的成员变量与@property声明的属性的理解。
18. do while 与while do的区别?
19. 用预处理指令#define声明一个常数,用以表明一年中有多少秒(忽略闰年问题)。
20. 浅拷贝与深拷贝的区别?
21. 类别的作用?继承与类别在实现中有何区别?
22. 我们说的OC是动态运行时语言是什么意思?
23. 为什么很多内置类如UITableView的delegate属性都是assign而不是retain ?
24. 什么时候用delegate,什么时候用Notification?
25. 什么是KVC与KVO?
26. 设计模式是什么?你知道哪些设计模式,并简要叙述。
27. 描述一下iOS SDK中如何实现MVC的开发模式。
28. ViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是什么?
29. delegate与Block的区别?
30. frame与bounds有什么不同?
31.ViewController生命周期
32. 如何将产品进行多语言发布,开发?
33. OC中是如何实现线程同步的?
34. UDP与TCP的区别是什么?
35. TCP/IP建立连接的过程?
36. 编程中,保存数据有哪几种方式?
37. 介绍版本控制中Git与SVN。
38. OC中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码,方法又是什么?
39. iOS中有哪些多线程方案?
40. 线程与进程的区别与联系?
41. 不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewDidLoad中创建)
42. 使用block时什么情况会发生引用循环,如何解决?
43. 以下代码运行结果如何?
-(void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"1");
dispatch_sync(dispatch_get_main_queue(), ^{
NSLog(@"2");
});
NSLog(@"3");
}
答:
发生主线程锁死。程序出现假死状态.
44. 若一个类有实例变量 NSString *_foo ,调用setValue:forKey:时,可以以foo还是 _foo 作为key?
45. 什么情况使用 weak 关键字,相比 assign 有什么不同?
46.怎么用 copy 关键字?
47. @protocol 与 category 中如何使用 @property
48. @synthesize与@dynamic分别有什么作用?
49. ARC下,不显式指定任何属性关键字时,默认的关键字都有哪些?
展开阅读全文