美文网首页
iOS-面试题2

iOS-面试题2

作者: 亦晴工作室 | 来源:发表于2016-08-25 11:11 被阅读9次

    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 <NSObject> 
     - (void)exampleProtocol; 
    @end 
     
    @interface ExampleClass : NSObject  
    {  
    id<ExampleProtocol> delegate;  
    }  
    @property (nonatomic,assign) id<ExampleProtocol> 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

          本文链接:https://www.haomeiwen.com/subject/kmlosttx.html