• <form id="qkrj8"></form>
    <wbr id="qkrj8"></wbr>

  • ?

    十大iOS面試試題解答

    作者:達內 更新時間:2014-06-17 12:05 來源:未知 點擊:
    十大ios面試試題解答。

    1.  Object-c的類可以多重繼承么?可以實現多個接口么?Category是什么?重寫一個類的方式用繼承好還是分類好?為什么?
          解答: Object-c的類不可以多重繼承;可以實現多個接口,通過實現多個接口可以完成C++的多重繼承;Category是類別,一般情況用分類好,用Category去重寫類的方法,僅對本Category有效,不會影響到其他類與原有類的關系。
        2.#import跟#include 又什么區別,@class呢,#import<> 跟 #import”"又什么區別?
        解答:#import是Objective-C導入頭文件的關鍵字,#include是C/C++導入頭文件的關鍵字,使 用#import頭文件會自動只導入一次,不會重復導入,相當于#include和#pragma once;@class告訴編譯器某個類的聲明,當執行時,才去查看類的實現文件,可以解決頭文件的相互包含;#import<>用來包含系統的頭文件,#import””用來包含用戶頭文件。
        3.屬性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那種情況下用?
        解答:readwrite是可讀可寫特性;需要生成getter方法和setter方法時,readonly是只讀特性  只會生成getter方法 不會生成setter方法 ;不希望屬性在類外改變assign是賦值特性,setter方法將傳入參數賦值給實例變量;僅設? ?變量時;retain表示持有特性,setter方法將傳入參數先保留,再賦值,傳入參數的retaincount會+1;copy 表示賦值特性,setter方法將傳入對象復制一份;需要完全一份新的變量時。nonatomic非原子操作,決定編譯器生成的setter getter是否是原子操作,atomic表示多線程安全,一般使用nonatomic。
        4.對于語句NSString*obj = [[NSData alloc] init];obj在編譯時和運行時分別時什么類型的對象?
         解答:編譯時是NSString的類型;運行時是NSData類型的對象;
        5.常見的object-c的數據類型有那些, 和C的基本數據類型有什么區別?如:NSInteger和int;
        object-c的數據類型有NSString,NSNumber,NSArray,NSMutableArray,NSData等等,這些都是class,創建后便是對象,而C語言 的基本數據類型int,只是一定字節的內存空間,用于存放數值;而object-c的NSNumber包含有父類NSObject的方法和 NSNumber自己的方法,可以完成復雜的操作。
        6.id聲明的對象有什么特性?
        解答:Id 聲明的對象具有運行時的特性,即可以指向任意類型的objcetive-c的對象;
        7.Objective-C如何對內存管理的,說說你的看法和解決方法?
    解答:Objective-C的內存管理主要有三種方式:ARC(自動內存計數)、手動內存計數、內存池。
        8.內存管理的幾條原則時什么?按照默認法則.那些關鍵字生成的對象需要手動釋放?在和property結合的時候怎樣有效的避免內存泄露?
        解答:遵循CocoaTouch的使用原則;
        內存管理主要要避免“過早釋放”和“內存泄漏”,對于“過早釋放”需要注意@property設置特性時,一定要用對特性關鍵字,對于“內存泄漏”,一定要申請了要負責釋放,要細心。
        關鍵字alloc 或new 生成的對象需要手動釋放;
        設置正確的property屬性,對于retain需要在合適的地方釋放,
        9.autorelease的對象,在什么時候會釋放,autorelease又 在什么時候使用比較合適呢?
        解答:autorelease將release的調用延遲了。autorelease會將對象放入autoreleasepool中,當pool釋放時,所有對象都會被release。當從一個方法中返回對象時,因為無法使用 release,所以使用autorelease比較合適。
        10.代理一般是什么時候用呢?
        解答:自身不做實際的事,要求其它類做。 代理也可用來傳值。 代理的目的是改變或傳遞控制鏈。允許一個類在某些特定時刻通知到其他類,而不需要獲取到那些類的指針。可以減少框架復雜度。另外一點,代理可以理解為java中的回調監聽機制的一種類似。

    標簽:

    相關閱讀

    最新開班信息

    3G-IOS軟件工程師就業班
    北京潘家園中心 開課日期:9月29日
    3G-IOS軟件工程師就業班
    北京潘家園中心 開課日期:9月29日
    3G-IOS軟件工程師周末班
    北京潘家園中心 開課日期:9月29日
    3G-IOS軟件工程師周末班
    北京潘家園中心 開課日期:9月29日
    奇米色|奇米网|奇米影视|奇米第四色在线影院|奇米影视777 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>