自己遇到的幾個問題,跟大家分享一下

2021-07-06 10:43:05 字數 2573 閱讀 6340

1 xib檔案的構成分為哪3個圖示?都具有什麼功能。

答: 

1 、file』s owner 是所有 nib 檔案中的每個圖示,它表示從磁碟載入 nib 檔案的物件;

2、 first responder 就是使用者當前正在與之互動的物件;

3 、view 顯示使用者介面;完成使用者互動;是 uiview 類或其子類。

2.tcp和udp的區別

答: tcp全稱是transmission control protocol,中文名為傳輸控制協議,它可以提供可靠的、面向連線的網路資料傳遞服務。傳輸控制協議主要包含下列任務和功能:

* 確保ip資料報的成功傳遞。

* 對程式傳送的大塊資料進行分段和重組。

* 確保正確排序及按順序傳遞分段的資料。

* 通過計算校驗和,進行傳輸資料的完整性檢查。

tcp提供的是面向連線的、可靠的資料流傳輸,而udp提供的是非面向連線的、不可靠的資料流傳輸。

簡單的說,tcp注重資料安全,而udp資料傳輸快點,但安全性一般

【tcp與udp的區別】

tcp 1.面向連線(要進行三次通訊才能連上)

2.佔系統資源較多,結構稍複雜

3.流模式

4.保證資料準確,保證資料順序,不丟包

udp 1.面向非連線(不需要連線,直接發,ping,qq即時通訊)

2.佔系統資源較少,結構簡單

3.資料報模式

4.有可能資料不准、丟包

3. objective-c的優缺點。

答:objc優點:

1). cateogies

2). posing

3). 動態識別

4).指標計算

5).彈性訊息傳遞

6).不是乙個過度複雜的 c 衍生語言

7).objective-c 與 c++ 可混合程式設計

objc缺點:

1).不支援命名空間

2).不支援運算子過載

3).不支援多重繼承

4).使用動態執行時型別,所有的方法都是函式呼叫,所以很多編譯時優化方法都用不到。(如內聯函式等),效能低劣。

posing,顧名思義,意思是「冒充」,它跟categories類似,但本質上不一樣,posing存在的目的在於子類可以冒充父類,使得後續的**無需把父類修改為子類,就可以很方便的讓父類表現成子類的行為,從而實現非常方便的冒充,這在一般的語言中是難以想象的。

它允許你擴充套件乙個class,並且全面的冒充這個super class,比如:你有乙個擴充套件nsarray的nsarraychild物件,如果你讓nsarraychild冒充nsarray,則你程式**所在的nsarray都會自動替換為nsarraychild。注意,這裡不是指**替換,而是nsarray所在地方的行為都跟nsarraychild一樣了。

1fraction *frac = [[fraction alloc]initwithnumeration:3:denominator:4];  

2    [frac print]; //此時輸出:fraction: 3/4  34

5    //make fractionchild posing as fracition,注意:poseasclass這個方法是nsobject的乙個內建方法,用於子類posing父類。  

67    [fracitonchild poseasclass [fraction class]];  89

10    fraction *frac2 = [[fraction alloc]initwithnumeration:3:denominator:4];  

11    [frac2 print]; //此時輸出:fractionchild: 3/4,此時的fration表現行為便被fractionchild冒充了 

動態識別:

1.多型:相同介面,不同的實現

2.動態型別識別

-(bool)iskindofclass:classobj  是否是classobj類或其子類

-(bool)ismemberofclass:classobj是否是classobj的例項

-(bool)respondstosselector:selector  類中是否有這個方法

nsclassfromstring(nsstring*);由字串得到類物件

nsstringfromclass([類名 class]);由類名得到字串

3 動態載入:執行時載入新類

ios 彈性訊息傳遞

在ios中呼叫乙個方法,其實是呼叫乙個方法實現的函式指標並傳給他物件例項指標,乙個selector,還有函式用到的引數。在objective-c 中,每乙個方法呼叫其實都是轉換成了呼叫objc_msgsend方法。

4,寫乙個」標準"巨集min ,這個巨集輸入兩個引數並返回較小的乙個。

答:#define  min(a,b)((a)<= (b)?(a):(b))

懂得在巨集中小心地把引數用括號括起來

我也用這個問題開始討論巨集的***,例如:當你寫下面的**時會發生什麼事?

least=min(*p++,b);

結果是:

((*p++)<=(b)?(*p++):(b))

這個表示式會產生***,指標p會作兩次++自增操作。

GWT RPC研究遇到的幾個問題

最近新專案要求用gwt 的rpc,研究了一下遇到一些問題,不過都已經解決,在此留個記錄 1 module 注 此module中的rename to sth 的意義是指gwt編譯完成後的資料夾名字是以 sth entry point中class的名稱,像本例中生成的資料夾即 gwttest.gwtte...

EFCore 入門遇到的幾個問題

public voidconfigureservices iservicecollection services json 檔案 connectionstring 查詢官方文件得知 json 配置的字串少乙個s,connectionstring connectionstrings 還遇到一次,加了s...

關於ajax的問題,跟大家分享一下

function onmouseup tablename,itemname else else if cell.column.key expirydate else return false 因為我要動態的去後台判斷當前的狀態,所以用了ajax去取狀態,然後會呼叫cmdrefresh documen...