筆試題01

希望讀者帶著批評的眼光,別誤導了您!本人才疏學淺,略做記錄,您有更好答案,請您指教!

1. 如何實現應用第一次啟動時的使用向導?

這個可以理解為每次版本高更新時,第一次打開首先顯示的應該是引導畫面。
在AppDelegate.m文件中實現判斷

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//在此處判斷是否為新版本是否為第一次登陸
//如果是第一次登陸,將rootViewController設置為引導控制器
    self.window.rootViewController = NewFeatureController;
}

2. 如何實現一個自定義視圖,給定一個NSArray的坐標點數組,在視圖上顯示對應的曲線。

相關知識: 繪制 文字、圓、直線、弧線、矩形、扇形、橢圓、三角形、圓角矩形、貝塞爾曲線、圖片)
CGContextRef:Graphics Context是圖形上下文,可以將其理解為一塊畫布,我們可以在上面進行繪畫操作,繪制完成后,將畫布放到我們的view中顯示即可,view看作是一個畫框.
需要重寫:- (void)drawRect:(CGRect)rect 方法。
附上文章一篇 寫的非常好!

效果圖

3. 如何為一個TextField控件加入自定義的邊框?

1.重寫一個文本將
2.簡單的方法:
self.background = [UIImage imageNamed:@"searchbar_textfield_background"];
其他的一些屬性

設置邊框樣式
[textField setBorderStyle:UITextBorderStyleNone];
設置邊框顏色
textField.layer.borderColor = [[UIColor redColor]CGColor];
//設置UITextField的文字顏色
tf.textColor=[UIColor redColor];
 
//設置UITextField的文本框背景顏色
tf.backgroundColor=[UIColor grayColor];
 
//設置UITextField的邊框的風格
tf.borderStyle=UITextBorderStyleRoundedRect;

 
//設置UITextField的代理
tf.delegate=self;
 
//設置UITextField的文字對齊方式
tf.textAlignment=UITextAlignmentCenter;//居中對齊
tf.textAlignment=UITextAlignmentLeft;//左對齊
tf.textAlignment=UITextAlignmentRight;//右對齊
tf.textAlignment=UITextAlignmentFill;//填充對齊
 
//設置UITextField的文字大小和字體
tf.font=[UIFont fontWithName:@"Times New Roman" size:20];
 
//設置UITextField自適應文本框大小
tf.adjustsFontSizeToFitWidth=YES/NO;//自適應寬度
tf.adjustsFontSizeToFitHeight=YES/NO;//自適應高度
 
//設置UITextField是否擁有一鍵清除的功能
tf.clearsOnBeginEditing=YES/NO;
 
//設置一鍵清除按鈕是否出現
tf.clearButtonMode=UITextFieldViewModeNever;
 
//設置UITextField的初始隱藏文字
tf.placeholder=@"輸入密碼";
 
//當UITextField的樣式為UITextBorderStyleNone的時候,修改背景圖片
tf.background=[UIImage imageNamed:@"xx.png"];
 
//設置UITextField的左邊view
tf.leftView=xxx;
 
//設置UITextField的左邊view出現模式
tf.leftViewMode=UITextFieldViewModeAlways;
 
//設置UITextField的右邊view
tf.rightView=xxx;

//設置UITextField的右邊view出現模式
tf.rightViewMode=UITextFieldViewModeAlways;
 
//設置UITextField的字的擺設方式
tf.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;
 

4. 分析給出某個頁面界面的實現方式?注意屏幕旋轉等的處理。

這里解答一下屏幕旋轉的問題吧!
如何獲取:
1.注冊UIDeviceOrientationDidChangeNotification通知

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientChange:)name:UIDeviceOrientationDidChangeNotification object:nil];

- (void)orientChange:(NSNotification *)noti
{
    
    NSDictionary* ntfDict = [noti userInfo];
    
    UIDeviceOrientation  orient = [UIDevice currentDevice].orientation;
    /*
     UIDeviceOrientationUnknown,
     UIDeviceOrientationPortrait,            // Device oriented vertically, home button on the bottom
     UIDeviceOrientationPortraitUpsideDown,  // Device oriented vertically, home button on the top
     UIDeviceOrientationLandscapeLeft,       // Device oriented horizontally, home button on the right
     UIDeviceOrientationLandscapeRight,      // Device oriented horizontally, home button on the left
     UIDeviceOrientationFaceUp,              // Device oriented flat, face up
     UIDeviceOrientationFaceDown             // Device oriented flat, face down   */
    
           switch (orient)
        {
            case UIDeviceOrientationPortrait:
                
                break;
            case UIDeviceOrientationLandscapeLeft:
    
                
                break;
            case UIDeviceOrientationPortraitUpsideDown:
 
          
                break;
            case UIDeviceOrientationLandscapeRight:
        
           
                break;
                
            default:
                break;
        }
}

2.注冊UIApplicationDidChangeStatusBarOrientationNotification通知,以來stausBar

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarOrientationChange:)name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];

- (void)statusBarOrientationChange:(NSNotification *)notification
{
    
    UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
    if (orientation == UIInterfaceOrientationLandscapeRight) // home鍵靠右
    {
        //
    }
    
    if (
        orientation ==UIInterfaceOrientationLandscapeLeft) // home鍵靠左
    {
        //
    }
    
    if (orientation == UIInterfaceOrientationPortrait)
    {
        //
    }

    if (orientation == UIInterfaceOrientationPortraitUpsideDown)
    {
        //
    }
}

5. 如何同時為iPad和iPhone做屏幕適配?

AutoLayout,sizeClass

開源框架:Masonry

6. 繼承和協議、category是怎么回事?可以同其他語言做類比嗎(比如Java或C++)?類似[a b]的消息調用,運行時是如何確定b的?

繼承是繼承的子類擁有父類的方法和屬性

private:私有成員,不能被子類繼承;

protected:保護成員,可以被子類繼承;

public:公有成員,可以被外部函數訪問,也可以被子類繼承。

可以重寫父類方法

協議是Delegate:只要某個類遵守了這個協議,就擁有了這個協議中的所有方法聲明。例如一個view向另一個view傳值。

Category是分類:是為了擴展已有類的新的行為。例如給NSString添加生成時間戳的方法。

7. 代碼塊(block)是怎么回事?代碼塊是對象嗎?要如何理解呢?

8. 使用過NSThread嗎?要如何使用?GCD是怎么回事?

NSThread和GCD都是多線程。

GCD 是一個替代諸如 NSThread 等技術的很高效和強大的技術,利用GCD可以實現多線程。

例如利用GCD多線程可以解決頁面UI與網絡下載的阻塞問題(UITableviewCell)。

9. 怎么編寫庫?進行組件/代碼復用的庫有何注意事項?如何使用C/C++開發的庫?有何注意事項?

在分享一篇文章他們寫的比我寫的好。

10.Socket是否使用過?TCP和UDP區別是什么?單播、組播、廣播分別是什么?

區別
1.基于連接與無連接;
2.對系統資源的要求(TCP較多,UDP少);
3.UDP程序結構較簡單;4.流模式與數據報模式 ;
5.TCP保證數據正確性,UDP可能丟包,TCP保證數據順序,UDP不保證。
1.單播:網絡節點之間的通信就好像是人們之間的對話一樣。如果一個人對另外一個人說話,那么用網絡技術的術語來描述就是“單播”,此時信息的接收和傳遞只在兩個節點之間進行。單播在網絡中得到了廣泛的應用,網絡上絕大部分的數據都是以單播的形式傳輸的,只是一般網絡用戶不知道而已。例如,你在收發電子郵件、瀏覽網頁時,必須與郵件服務器、Web服務器建立連接,此時使用的就是單播數據傳輸方式。但是通常使用“點對點通信”(Point to Point)代替“單播”,因為“單播”一般與“多播”和“廣播”相對應使用。
2.多播:“多播”也可以稱為“組播”,在網絡技術的應用并不是很多,網上視頻會議、網上視頻點播特別適合采用多播方式。因為如果采用單播方式,逐個節點傳輸,有多少個目標節點,就會有多少次傳送過程,這種方式顯然效率極低,是不可取的;如果采用不區分目標、全部發送的廣播方式,雖然一次可以傳送完數據,但是顯然達不到區分特定數據接收對象的目的。采用多播方式,既可以實現一次傳送所有目標節點的數據,也可以達到只對特定對象傳送數據的目的。   IP網絡的多播一般通過多播IP地址來實現。多播IP地址就是D類IP地址,即224.0.0.0至239.255.255.255之間的IP地址。Windows 2000中的DHCP管理器支持多播IP地址的自動分配。
3.廣播:“廣播”在網絡中的應用較多,如客戶機通過DHCP自動獲得IP地址的過程就是通過廣播來實現的。但是同單播和多播相比,廣播幾乎占用了子網內網絡的所有帶寬。拿開會打一個比方吧,在會場上只能有一個人發言,想象一下如果所有的人同時都用麥克風發言,那會場上就會亂成一鍋粥。集線器由于其工作原理決定了不可能過濾廣播風暴,一般的交換機也沒有這一功能,不過現在有的網絡交換機(如全向的QS系列交換機)也有過濾廣播風暴功能了,路由器本身就有隔離廣播風暴的作用。   廣播風暴不能完全杜絕,但是只能在同一子網內傳播,就好像喇叭的聲音只能在同一會場內傳播一樣,因此在由幾百臺甚至上千臺電腦構成的大中型局域網中,一般進行子網劃分,就像將一個大廳用墻壁隔離成許多小廳一樣,以達到隔離廣播風暴的目的。   在IP網絡中,廣播地址用IP地址“255.255.255.255”來表示,這個IP地址代表同一子網內所有的IP地址。

11. http POST和GET的差異?http和https有何不同?

Get:相對不安全 , 參數在url后面,傳輸長度小

Post:相對安全,參數在請求體中,傳輸的長度相比較長

http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。http的連接很簡單。

HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。

在ios9中,要求使用https協議。但也可以不適用。

12. 是否使用過自動化測試框架?介紹一下。

自動化測試框架

什么是證書,有哪些種類?如何做app簽名?如何進行testflight發布測試?

證書是開發者購買的測試和發布應用程序的簽名文件。
有個人開發者證書($99)和企業開發證書($299)
在蘋果開發整中心生成相關p12文件進行測試和發布應用程序。

14. Svn里的conflict是怎么回事?如何處理?

多人協作時,修改同一句或一段代碼,更新或提交時會造成沖突。可以對沖突進行合并。刪除沖突,重新提交。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,936評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,744評論 3 421
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,879評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,181評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,935評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,325評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,384評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,534評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,084評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,892評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,623評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,322評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,735評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,990評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,800評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,084評論 2 375

推薦閱讀更多精彩內容

  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,083評論 0 8
  • 1.這篇文章不是本人原創的,只是個人為了對這部分知識做一個整理和系統的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,110評論 6 174
  • 名詞延伸 通俗的說,域名就相當于一個家庭的門牌號碼,別人通過這個號碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,619評論 2 56
  • 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者...
    保川閱讀 5,977評論 1 13
  • 前言 這一篇文章主要圍繞了IP協議,ICMP協議和UDP協議展開,希望可以在這里大概做一個總結,將《TCP/IP協...
    Noskthing閱讀 3,113評論 5 57