iOS-面试题2

1、OC 能实现私有化吗?
答:方法的私有化,声明即外漏,不声明不外漏。( .m 可以实现私有化。)
2、OC 中有多继承吗?
答:没有直接的多继承,可以模拟实现。采用 协议 就可以实现多继承。
2、解释类、对象、实例方法和实例成员
类:一类事物的抽象,有成员和方法。
对象:类的实例化和具体化
实例方法:主要和类方法区别,类方法声明时前面用加号,实例方法声明时用减号
实例成员:主要和类成员区分,类成员加static,实例成员不需要。
3、类名、方法名、成员名、函数名、宏定义首字母哪些大写,哪些小写
大写:类名,宏定义
小写:方法名,成员名,函数名
4、@public,@protected,@private区别

@public:完全公开,在程序的任何地方都可以调用 
@private:和@public相反,只能在该类内部不调用 
@protected:只有自己和自己的子类可以调用 

5、如何声明一个带两个参数的实例方法和如何调用(举例说明)
声明:-(void)methodForParameter1:(NSString *)p1 parameter2:(NSString *)p2;
调用:[self methodForParameter1:@"" parameter2:@""];

6、@property (nonatomic, retain) Example *example;
写出其setter和getter方法

getter 
- (Example *)example { return _example; } 
 
 
setter 
 -(void)setExample:(Example *)aExample 
 {  
if (example != aExample)  
{  
[example release];  
example = [aExample retain];  
} 
 } 

7、static关键字的作用,extern关键字的作用
static:定义全局变量;定义类成员;定义内部函数
extern:声明外部变量和外部函数,所声明的变量和函数可能不在本文件内定义或实现

8、解释self
self就是实例本身,在类里用self来调用自身的方法
9、什么时候使用继承?什么时候使用类别
给一个类增加新的数据成员时用继承
只是想扩展类的方法或覆盖原来的方法时用类别
10、如何声明一个类
@class Example或者
@interface Example
@end
11、写出1-2个与动态调用有关的方法
respondsToSelector 、performSelector、conformsToProtocol、isKindOfClass、isMemberOfClass
12、写一个协议(举例),协议有什么用

@protocol ExampleProtocol  
 - (void)exampleProtocol; 
@end 
 
@interface ExampleClass : NSObject  
{  
id delegate;  
}  
@property (nonatomic,assign) id delegate;  
@end 

一个通过协议对外提供接口。

Foundation
1、存放数字用哪个类,存放CGRect用什么类型
存放数字用NSNumber
存放CGRect用NSValue

2、快速枚举(举例)

NSArray *array = [NSArray array]; 
 for (id object in array)  
{ 
  [object test]; 
 } 

3、有哪些集合类和存放二进制数据类
NSArray/NSMutableArray,NSDictionary/NSMutableDictionary,NSSet/NSMutableSet/NSCountedSet,NSData存放二进制数据

4、文件处理用哪些类(写1-2个)
NSFileManager\NSUserDefaults open, fopen

5、解释retain、copy、assgin、autorelease
retain,copy:计数器加一,区别是retain是原对象计数器加一,copy是创建一个新对象后,新对象计数器加一
assgin:简单复制,计数器不变
autorelease:内存延迟释放,计数器延迟减一

6、写出归档相关类
NSKeyedArchiver、NSKeyedUnarchiver

7、写出xml解析和网络相关类
xml解析:NSXMLParser, kissXML GDATA
网络:NSConnection

8、常用的xml/json解析和http请求第三方包各写出一个
xml:kissxml
json:SBJSon
http请求:ASIHttpRequest SDWebImage, 异步图片加载器(界面流畅)
异步mp3 异步video

9、代理和通知的区别
代理是垂直的,通知可以平行的

cocoa
1、写出iphone编程中常用控件类名(不用很准确,写出五个以上)
UILabel,UITextField,UITextView,UIButton,UISwitch, UISegmentedControl,UISlider,UIImageView ,UIScrollView,UITableView,UITabBarController,UINavigationController

2、写出几个常用的设计模式(两个以上)
MVC设计模式
单例模式
代理模式
通知模式
工厂模式

你可能感兴趣的:(iOS-面试题2)