1.什么時(shí)候用copy
{
copy:分為淺復(fù)制和深復(fù)制,深復(fù)制應(yīng)用計(jì)數(shù)器不變,對(duì)象被復(fù)制一份剖踊,
}
2.UIViewController更舞,UIView的父類(lèi)
3.CALayer和UIView區(qū)別
{
UIView和CALayer的那些事
1.繼承結(jié)構(gòu),uiview繼承uiresponder 可以監(jiān)聽(tīng)點(diǎn)擊事件共苛。
CALayer繼承nsobject 所以不能點(diǎn)擊時(shí)間
2.所屬的框架不同,calayer是coresi 2d。而uiview 屬于uikit框架催首。uikit主要是構(gòu)建用戶(hù)界面,響應(yīng)事件的泄鹏。
而corez2d 屬于一個(gè)低級(jí)的郎任,繪制內(nèi)容的對(duì)象
UIView來(lái)自CALayer,高于CALayer备籽,是CALayer高層實(shí)現(xiàn)與封裝舶治。UIView的所有特性來(lái)源于CALayer支持
}
4.消息響應(yīng)機(jī)制
5.block
6.self.屬性,和_屬性
7.layoutSubView什么時(shí)候調(diào)用
8.UIView有個(gè)屬性window
9.創(chuàng)建一個(gè)登錄界面想要界面一顯示就有鍵盤(pán)
10.控制器創(chuàng)建的方法的不同
11.drawInRect的調(diào)用,iconView繼承自UIImageView车猬,UIImageView重寫(xiě)drawInRect畫(huà)一條線(xiàn)霉猛,在iconView中給Image賦值,則會(huì)顯示什么樣子
12.soket和HTTp的區(qū)別
13.soket, http, tcp,udp分類(lèi)珠闰,原因
14.網(wǎng)絡(luò)七層協(xié)議
{
由上往下:應(yīng)用層惜浅、表示層、會(huì)話(huà)層伏嗜、傳輸層坛悉、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層承绸、物理層吹散。
tcp協(xié)議對(duì)應(yīng)的是應(yīng)"傳輸層"
http協(xié)議對(duì)應(yīng)的是"應(yīng)用層"
ip協(xié)議對(duì)應(yīng)的是"網(wǎng)絡(luò)層"
socket則是對(duì)TCP/IP 的封裝和應(yīng)用(程序員層面上) 底層純c
TCP/IP協(xié)議是傳輸層協(xié)議,主要解決如何在網(wǎng)絡(luò)中傳輸八酒。
http是應(yīng)用層協(xié)議空民,主要解決如何包裝數(shù)據(jù)。
重點(diǎn):1.理解網(wǎng)絡(luò) 2.理解七層協(xié)議/五層模型 3.理解Socket.
{
應(yīng)用層: 規(guī)定"應(yīng)用程序"的數(shù)據(jù)格式. http / ftp /email 等.? //紙條上寫(xiě)的是啥?
傳輸層: 建立"端口"到"端口"之間的通信. UDP/TCP 協(xié)議."端口". //我們幫你傳紙條
網(wǎng)絡(luò)層: 確定每一臺(tái)計(jì)算機(jī)的位置,建立"主機(jī)"到"主機(jī)"之間的通信.IPv4協(xié)議,"IP地址".? // 女孩的位置
數(shù)據(jù)鏈路層: 確定1和0的分組方式.以太網(wǎng)協(xié)議:一組電信號(hào)就是一個(gè)數(shù)據(jù)包."MAC地址"/網(wǎng)卡/廣播. // 深情告白
物理層: 將電腦連接入網(wǎng)絡(luò),傳輸電信號(hào)1和0.? ? ? // 一張白紙
互聯(lián)網(wǎng)分層結(jié)構(gòu)的好處:
上層的變動(dòng)完全不影響下層的結(jié)構(gòu).
Socket : "主機(jī) + 端口"就是"Socket(套接字)"? ----- TCP/IP協(xié)議
}
3次握手:
1.客戶(hù)端發(fā)送syn包到服務(wù)器羞迷,客戶(hù)端進(jìn)入syn_send狀態(tài)界轩,等待服務(wù)器確認(rèn)
什么是syn包:
解釋?zhuān)篠YN是tcp、ip建立連接的時(shí)候使用的握手信號(hào)衔瓮。
2.服務(wù)器收到syn包 確認(rèn)客戶(hù)的syn浊猾,同時(shí)自己也發(fā)送一個(gè)syn + ack包,此時(shí)服務(wù)器進(jìn)入syn_recv狀態(tài)热鞍。
3.客戶(hù)端收到syn+ack包葫慎,向服務(wù)器發(fā)送確認(rèn)包ack 此包發(fā)送完畢衔彻,客戶(hù)端和服務(wù)器進(jìn)入establish狀態(tài),完成三次握手
握手過(guò)程中傳送的包里不包含數(shù)據(jù)偷办,三次握手完畢后艰额,客戶(hù)端與服務(wù)器才正式開(kāi)始傳輸數(shù)據(jù)
4次揮手:因?yàn)閠cp連接是全雙工的,因此每個(gè)方向上都必須單獨(dú)進(jìn)行關(guān)閉椒涯,這個(gè)原則是當(dāng)一方完成
tcp連接的拆除需要發(fā)送4個(gè)包柄沮,因此稱(chēng)為四次揮手,客戶(hù)端和服務(wù)端均可發(fā)起揮手操作废岂,在socket編程中祖搓,
任何一方執(zhí)行close()操作即可產(chǎn)生揮手操作。
1.tcp客戶(hù)端發(fā)送一個(gè)fin湖苞,用來(lái)關(guān)閉客戶(hù)端到服務(wù)端的數(shù)據(jù)傳送拯欧。
2.服務(wù)器收到這個(gè)fin,回一個(gè)ack财骨,確認(rèn)序號(hào)為收到的序號(hào)+1哈扮;
3.服務(wù)器關(guān)閉客戶(hù)端的連接,發(fā)送一個(gè)pin可客戶(hù)端
4.客戶(hù)端蚓再,
UDP和TCP的區(qū)別:
1.tcp是基于鏈接的協(xié)議,也就是說(shuō)包各,在正式收發(fā)數(shù)據(jù)前摘仅,必須和對(duì)方建立可靠地連接。也就是通過(guò)三次握手·问畅。
UDP是面向非連接的協(xié)議娃属,它不與對(duì)方建立連接,而直接把數(shù)據(jù)發(fā)送出去护姆。
2.傳輸?shù)闹匾苑耍煽浚豢煽俊?/p>
3.速度快? 慢卵皂。
4.udp的程序結(jié)構(gòu)比較簡(jiǎn)單
5.tcp消耗的系統(tǒng)資源要多
http與socket區(qū)別
1.http:超文本傳輸協(xié)議秩铆,首先它是一個(gè)協(xié)議,并且是基于tcp/ip基礎(chǔ)上的應(yīng)用層協(xié)議灯变。tcp/ip協(xié)議是傳輸層協(xié)議殴玛,主要解決數(shù)據(jù)如何網(wǎng)絡(luò)數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸,http是應(yīng)用層協(xié)議添祸,主要解決如何包裝數(shù)據(jù)滚粟,規(guī)定了瀏覽器與服務(wù)器之間通訊的規(guī)則。是萬(wàn)維網(wǎng)交換數(shù)據(jù)的基礎(chǔ)刃泌,http是基于請(qǐng)求-響應(yīng)形式并且是短連接凡壤,并且是無(wú)狀態(tài)的協(xié)議署尤。
2.socket:socket不屬于協(xié)議范疇,而是調(diào)用了一個(gè)借口亚侠,socket是對(duì)tcp/ip協(xié)議的封裝曹体,通過(guò)條用socket,才能使用才能使用TCP/IP協(xié)議盖奈,Socket連接是長(zhǎng)連接混坞,理論上客戶(hù)端和服務(wù)器端一旦建立連接將不會(huì)主動(dòng)斷開(kāi)此連接。Socket連接屬于請(qǐng)求-響應(yīng)形式钢坦,服務(wù)端可主動(dòng)將消息推送給客戶(hù)端究孕。;
}
15.coredata是什么爹凹!它和SQL的區(qū)別是什么厨诸?你分別會(huì)在那個(gè)場(chǎng)景使用它們?
{
coreData 是ios5之后才出來(lái)的一個(gè)框架禾酱,它提供了對(duì)象微酬,關(guān)系映射的功能,即能將oc對(duì)象轉(zhuǎn)成數(shù)據(jù)颤陶,保存在SQLite數(shù)據(jù)庫(kù)文件中颗管,也能將保存在數(shù)據(jù)庫(kù)中的文件還原成oc對(duì)象。在此數(shù)據(jù)操作期間滓走,我們不需要編寫(xiě)任何的SQL語(yǔ)句垦江,
利用coredata我們可以輕松地把數(shù)據(jù)庫(kù)中的記錄轉(zhuǎn)換為oc對(duì)象,也可以將oc對(duì)象轉(zhuǎn)換為數(shù)據(jù)庫(kù)中的記錄搅方。
}
16.SQLite 數(shù)據(jù)庫(kù)概念
{
1.是一個(gè)輕量級(jí)的數(shù)據(jù)庫(kù)比吭,非常的小
2.占用資源少,處理速度快姨涡。
3.
1.一個(gè)表衩藤,存放一組相同類(lèi)型的數(shù)據(jù)
2.一行,一條記錄涛漂,對(duì)應(yīng)著一個(gè)完整地?cái)?shù)據(jù)模型
3.字段(列)赏表,記錄該條記錄的一個(gè)屬性值
4.主鍵
{
1.唯一標(biāo)示一條記錄的
2.通常是個(gè)整數(shù)
3.通常是自動(dòng)增長(zhǎng)的
4.程序員不需要管理主鍵的數(shù)值生成
5.主鍵是由數(shù)據(jù)庫(kù)生成大的
}
增刪改查
創(chuàng)建
CREATE TABLE IF NOT EXISTS "TABLE名" ("id" INTEGER NOT NULL PRIMARY AUTOINCREMENT ,"name" TEXT)
刪除表:
DROP TABLE IF EXISTS? TABLE名
1.增加:INSERT INTO TABLE名? (name,age,height) VALUES ('LIZAIYU',23,1.8);
2.修改:UPDATE TABLE名 SET name = 'wangwu',age = 12? WHERE id = 1;
3.刪除:DELETE FROM TABLE名 WHERE id = 1;
4.查詢(xún):SELECT * FROM T_STUDNET
服務(wù)器的鎖為排他鎖,
}
17.往SQLite插入大批量數(shù)據(jù)
{
如果不主動(dòng)開(kāi)啟事務(wù)匈仗,執(zhí)行insert 和update指令的時(shí)候底哗,回味每一條數(shù)據(jù)開(kāi)啟事務(wù),
主動(dòng)開(kāi)啟事務(wù)锚沸,在這期間就不用自動(dòng)開(kāi)啟事務(wù)跋选。
1.開(kāi)始事務(wù)? ? 2.提交事務(wù)
事務(wù):是為了插入數(shù)據(jù)過(guò)程中失敗,造成數(shù)據(jù)混亂的情況哗蜈。
做了一個(gè)快照前标,相當(dāng)于一個(gè)備份坠韩,開(kāi)始插入。插入成功 快照就沒(méi)了炼列,失敗就恢復(fù)過(guò)來(lái)只搁。
}
18.關(guān)于地圖定位
{
1.mapkit框架用來(lái)展示地圖
2.corelocation 用來(lái)地理定位
lbs :locationbasedservice
solomo :所羅門(mén)(social local mobile)
cllocationmanager 對(duì)象做用戶(hù)的定位。
ios8開(kāi)始俭尖,定位分為兩種情況氢惋,總是使用用戶(hù)位置:NSLOCationalwaysusagedescription
當(dāng)使用時(shí)才定位:NSLocationWhenInUseDescription
使用clgeocoder 可以完成“地理編碼”和“反地理編碼”
地理編碼方法:根據(jù)地名,獲取具體的位置信息(比如說(shuō)稽犁,經(jīng)緯度焰望,地址的全稱(chēng));
反地理編碼:根據(jù)經(jīng)緯度已亥,獲取具體的位置信息熊赖。
mapKit框架的使用
1.MKMapView專(zhuān)門(mén)用于地圖的顯示。
2.設(shè)置用戶(hù)追蹤模式屬性虑椎,可以跟蹤用戶(hù)的當(dāng)前位置震鹉。
3.可以設(shè)值地圖類(lèi)型,mapViewType設(shè)置地圖類(lèi)型捆姜。
}
19.什么是block传趾?
{
Block是一種數(shù)據(jù)類(lèi)型。
是一個(gè)能工作的代碼單元泥技,在任何需要的時(shí)候執(zhí)行
本質(zhì)上是一個(gè)輕量級(jí)的匿名函數(shù)浆兰,既可以作為參數(shù)? 還可以作為返回值。
匿名函數(shù)零抬。只有函數(shù)體,不具備函數(shù)名稱(chēng)宽涌。
}
20,@property 的使用
{
//以前的
@property 只是給你get方法和set方法做一個(gè)聲明平夜。
@synthesize 只是用來(lái)實(shí)現(xiàn)get和set方法
Xcode4.5以后@property會(huì)直接生成set方法和get方法
}
21.selector,method和message的區(qū)別
{
selector是方法名卸亮,message包括selector和方法的參數(shù)忽妒,method包括selector和方法的具體實(shí)現(xiàn)。
}