3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS面试必看,最全梳理

發(fā)布時(shí)間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS面试必看,最全梳理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

序言

目前形勢,參加到iOS隊(duì)伍的人是越來越多,甚至已經(jīng)到供過于求了。今年,找過工作人可能會(huì)更深刻地體會(huì)到今年的就業(yè)形勢不容樂觀,加之,培訓(xùn)機(jī)構(gòu)一火車地向用人單位輸送iOS開發(fā)人員,打破了生態(tài)圈的動(dòng)態(tài)平衡。矯情一下,言歸正傳,我奉獻(xiàn)一下,為iOS應(yīng)聘者梳理一下面試題,希望能助一臂之力!

OC的理解與特性

  • OC作為一門面向?qū)ο蟮恼Z言,自然具有面向?qū)ο蟮恼Z言特性:封裝、繼承、多態(tài)。它既具有靜態(tài)語言的特性(如C++),又有動(dòng)態(tài)語言的效率(動(dòng)態(tài)綁定、動(dòng)態(tài)加載等)。總體來講,OC確實(shí)是一門不錯(cuò)的編程語言,

  • Objective-C具有相當(dāng)多的動(dòng)態(tài)特性,表現(xiàn)為三方面:動(dòng)態(tài)類型(Dynamic typing)、動(dòng)態(tài)綁定(Dynamic binding)和動(dòng)態(tài)加載(Dynamic loading)。動(dòng)態(tài)——必須到運(yùn)行時(shí)(run time)才會(huì)做的一些事情。

  • 動(dòng)態(tài)類型:即運(yùn)行時(shí)再?zèng)Q定對象的類型,這種動(dòng)態(tài)特性在日常的應(yīng)用中非常常見,簡單來說就是id類型。事實(shí)上,由于靜態(tài)類型的固定性和可預(yù)知性,從而使用的更加廣泛。靜態(tài)類型是強(qiáng)類型,而動(dòng)態(tài)類型屬于弱類型,運(yùn)行時(shí)決定接受者。

  • 動(dòng)態(tài)綁定:基于動(dòng)態(tài)類型,在某個(gè)實(shí)例對象被確定后,其類型便被確定了,該對象對應(yīng)的屬性和響應(yīng)消息也被完全確定。

  • 動(dòng)態(tài)加載:根據(jù)需求加載所需要的資源,最基本就是不同機(jī)型的適配,例如,在Retina設(shè)備上加載@2x的圖片,而在老一些的普通蘋設(shè)備上加載原圖,讓程序在運(yùn)行時(shí)添加代碼模塊以及其他資源,用戶可根據(jù)需要加載一些可執(zhí)行代碼和資源,而不是在啟動(dòng)時(shí)就加載所有組件,可執(zhí)行代碼可以含有和程序運(yùn)行時(shí)整合的新類。

簡述內(nèi)存管理基本原則

  • 之前:OC內(nèi)存管理遵循“誰創(chuàng)建,誰釋放,誰引用,誰管理”的機(jī)制,當(dāng)創(chuàng)建或引用一個(gè)對象的時(shí)候,需要向她發(fā)送alloc、copy、retain消息,當(dāng)釋放該對象時(shí)需要發(fā)送release消息,當(dāng)對象引用計(jì)數(shù)為0時(shí),系統(tǒng)將釋放該對象,這是OC的手動(dòng)管理機(jī)制(MRC)。

  • 目前:iOS 5.0之后引用自動(dòng)管理機(jī)制——自動(dòng)引用計(jì)數(shù)(ARC),管理機(jī)制與手動(dòng)機(jī)制一樣,只是不再需要調(diào)用retain、release、autorelease;它編譯時(shí)的特性,當(dāng)你使用ARC時(shí),在適當(dāng)位置插入release和autorelease;它引用strong和weak關(guān)鍵字,strong修飾的指針變量指向?qū)ο髸r(shí),當(dāng)指針指向新值或者指針不復(fù)存在,相關(guān)聯(lián)的對象就會(huì)自動(dòng)釋放,而weak修飾的指針變量指向?qū)ο?#xff0c;當(dāng)對象的擁有者指向新值或者不存在時(shí)weak修飾的指針會(huì)自動(dòng)置為nil。

  • 如果使用alloc、copy(mutableCopy)或者retian一個(gè)對象時(shí),你就有義務(wù),向它發(fā)送一條release或者autorelease消息。其他方法創(chuàng)建的對象,不需要由你來管理內(nèi)存。

  • 向一個(gè)對象發(fā)送一條autorelease消息,這個(gè)對象并不會(huì)立即銷毀, 而是將這個(gè)對象放入了自動(dòng)釋放池,待池子釋放時(shí),它會(huì)向池中每一個(gè)對象發(fā)送 一條release消息,以此來釋放對象.

  • 向一個(gè)對象發(fā)送release消息,并不意味著這個(gè)對象被銷毀了,而是當(dāng)這個(gè)對象的引用計(jì)數(shù)為0時(shí),系統(tǒng)才會(huì)調(diào)用dealloc方法,釋放該對象和對象本身它所擁有的實(shí)例。

其他注意事項(xiàng)

  • 如果一個(gè)對象有一個(gè)_strong類型的指針指向著,找個(gè)對象就不會(huì)被釋放。如果一個(gè)指針指向超出了它的作用域,就會(huì)被指向nil。如果一個(gè)指針被指向nil,那么它原來指向的對象就被釋放了。當(dāng)一個(gè)視圖控制器被釋放時(shí),它內(nèi)部的全局指針會(huì)被指向nil。用法“:不管全局變量還是局部變量用_strong描述就行。

  • 局部變量:出了作用域,指針會(huì)被置為nil。

  • 方法內(nèi)部創(chuàng)建對象,外部使用需要添加_autorelease;

  • 連線的時(shí)候,用_weak描述。

  • 代理使用unsafe_unretained就相當(dāng)于assign;

  • block中為了避免循環(huán)引用問題,使用_weak描述;

  • 聲明屬性時(shí),不要以new開頭。如果非要以new開頭命名屬性的名字,需要自己定制get方法名,如

1 @property(getter=theString)?NSString?*?newString;
  • 如果要使用自動(dòng)釋放池,用@autoreleasepool{}

  • ARC只能管理Foundation框架的變量,如果程序中把Foundation中的變量強(qiáng)制換成COre Foundation中的變量需要交換管理權(quán);

  • 在非ARC工程中采用ARC去編譯某些類:-fobjc-arc。

  • 在ARC下的工程采用非ARC去編譯某些類:-fno-fobjc-arc。

如何理解MVC設(shè)計(jì)模式

MVC是一種架構(gòu)模式,M表示MOdel,V表示視圖View,C表示控制器Controller:

  • Model負(fù)責(zé)存儲(chǔ)、定義、操作數(shù)據(jù);

  • View用來展示書給用戶,和用戶進(jìn)行操作交互;

  • Controller是Model和View的協(xié)調(diào)者,Controller把Model中的數(shù)據(jù)拿過來給View用。Controller可以直接與Model和View進(jìn)行通信,而View不能和Controller直接通信。View與Controller通信需要利用代理協(xié)議的方式,當(dāng)有數(shù)據(jù)更新時(shí),MOdel也要與Controller進(jìn)行通信,這個(gè)時(shí)候就要用Notification和KVO,這個(gè)方式就像一個(gè)廣播一樣,MOdel發(fā)信號,Controller設(shè)置監(jiān)聽接受信號,當(dāng)有數(shù)據(jù)更新時(shí)就發(fā)信號給Controller,Model和View不能直接進(jìn)行通信,這樣會(huì)違背MVC設(shè)計(jì)模式。

如何理解MVVM設(shè)計(jì)模式。

  • ViewModel層,就是View和Model層的粘合劑,他是一個(gè)放置用戶輸入驗(yàn)證邏輯,視圖顯示邏輯,發(fā)起網(wǎng)絡(luò)請求和其他各種各樣的代碼的極好的地方。說白了,就是把原來ViewController層的業(yè)務(wù)邏輯和頁面邏輯等剝離出來放到ViewModel層。

  • View層,就是ViewController層,他的任務(wù)就是從ViewModel層獲取數(shù)據(jù),然后顯示。

  • 如需了解更多,請查看這篇文章。

Objective-C 中是否支持垃圾回收機(jī)制?

  • OC是支持垃圾回收機(jī)制的(Garbage collection簡稱GC),但是apple的移動(dòng)終端中,是不支持GC的,Mac桌面系統(tǒng)開發(fā)中是支持的.

  • 移動(dòng)終端開發(fā)是支持ARC(Automatic Reference Counting的簡稱),ARC是在IOS5之后推出的新技術(shù),它與GC的機(jī)制是不同的。我們在編寫代碼時(shí), 不需要向?qū)ο蟀l(fā)送release或者autorelease方法,也不可以調(diào)用delloc方法,編譯器會(huì)在合適的位置自動(dòng)給用戶生成release消息(autorelease),ARC 的特點(diǎn)是自動(dòng)引用技術(shù)簡化了內(nèi)存管理的難度.

協(xié)議的基本概念和協(xié)議中方法默認(rèn)為什么類型。

  • OC中的協(xié)議是一個(gè)方法列表,且多少有點(diǎn)相關(guān)。它的特點(diǎn)是可以被任何類使用(實(shí)現(xiàn)),但它并不是類(這里我們需要注意),自身不會(huì)實(shí)現(xiàn)這樣方法, 而是又其他人來實(shí)現(xiàn)協(xié)議經(jīng)常用來實(shí)現(xiàn)委托對象(委托設(shè)計(jì)模式)。如果一個(gè)類采用了一個(gè)協(xié)議,那么它必須實(shí)現(xiàn)協(xié)議中必須需要實(shí)現(xiàn)的方法,在協(xié)議中的方法默認(rèn)是必須實(shí)現(xiàn)(@required),添加關(guān)鍵字@optional,表明一旦采用該協(xié)議,這些“可選”的方法是可以選擇不實(shí)現(xiàn)的。

簡述類目category優(yōu)點(diǎn)和缺點(diǎn)。

優(yōu)點(diǎn):

  • 不需要通過增加子類而增加現(xiàn)有類的行為(方法),且類目中的方法與原始類方法基本沒有區(qū)別;

  • 通過類目可以將龐大一個(gè)類的方法進(jìn)行劃分,從而便于代碼的日后的維護(hù)、更新以及提高代碼的閱讀性;

缺點(diǎn):

  • 無法向類目添加實(shí)例變量,如果需要添加實(shí)例變量,只能通過定義子類的方式;

  • 類目中的方法與原始類以及父類方法相比具有更高優(yōu)先級,如果覆蓋父類的方法,可能導(dǎo)致super消息的斷裂。因此,最好不要覆蓋原始類中的方法。

類別的作用

  • 給系統(tǒng)原有類添加方法,不能擴(kuò)展屬性。如果類別中方法的名字跟系統(tǒng)的方法名一樣,在調(diào)用的時(shí)候類別中的方法優(yōu)先級更高;

  • 分散類的實(shí)現(xiàn):如:

1 2 +?(NSIndexPath?*)indexPathForRow:(NSInteger)row inSection:(NSInteger)section

原本屬于NSIndexPath的方法,但因?yàn)檫@個(gè)方法經(jīng)常使用的表的時(shí)候調(diào)用、跟表的關(guān)系特別密切,因此把這個(gè)方法一類別的形式、聲明在UITableView.h中。

  • 聲明私有方法,某一個(gè)方法只實(shí)現(xiàn),不聲明,相當(dāng)于私有方法。

  • 類別不能聲明變量,類別不可以直接添加屬性。property描述setter方法,就不會(huì)報(bào)錯(cuò)。

循環(huán)引用的產(chǎn)生原因,以及解決方法。

  • 產(chǎn)生原因:如下圖所示,對象A和對象B相互引用了對方作為自己的成員變量,只有自己銷毀的時(shí)候才能將成員變量的引用計(jì)數(shù)減1。對象A的銷毀依賴于對象B的銷毀,同時(shí)對象B銷毀也依賴與對象A的銷毀,從而形成循環(huán)引用,此時(shí),即使外界沒有任何指針訪問它,它也無法釋放。

循環(huán)引用示例圖

多個(gè)對象間依然會(huì)存在循環(huán)引用問題,形成一個(gè)環(huán),在編程中,形成的環(huán)越大越不容易察覺,如下圖所示:

多個(gè)對象引用示例圖

解決方法:

  • 事先知道存在循環(huán)引用的地方,在合理的位置主動(dòng)斷開一個(gè)引用,是對象回收;

  • 使用弱引用的方法。

鍵路徑(keyPath)、鍵值編碼(KVC)和鍵值觀察(KVO)

鍵路徑

  • 在一個(gè)給定的實(shí)體中,同一個(gè)屬性的所有值具有相同的數(shù)據(jù)類型。

  • 鍵-值編碼技術(shù)用于進(jìn)行這樣的查找—它是一種間接訪問對象屬性的機(jī)制。 - 鍵路徑是一個(gè)由用點(diǎn)作分隔符的鍵組成的字符串,用于指定一個(gè)連接在一起的對象性質(zhì)序列。第一個(gè)鍵的性質(zhì)是由先前的性質(zhì)決定的,接下來每個(gè)鍵的值也是相對于其前面的性質(zhì)。

  • 鍵路徑使您可以以獨(dú)立于模型實(shí)現(xiàn)的方式指定相關(guān)對象的性質(zhì)。通過鍵路徑,您可以指定對象圖中的一個(gè)任意深度的路徑,使其指向相關(guān)對象的特定屬性。

鍵值編碼KVC

  • 鍵值編碼是一種間接訪問對象的屬性使用字符串來標(biāo)識屬性,而不是通過調(diào)用存取方法,直接或通過實(shí)例變量訪問的機(jī)制,非對象類型的變量將被自動(dòng)封裝或者解封成對象,很多情況下會(huì)簡化程序代碼;

  • KVC的缺點(diǎn):一旦使用 KVC 你的編譯器無法檢查出錯(cuò)誤,即不會(huì)對設(shè)置的鍵、鍵路徑進(jìn)行錯(cuò)誤檢查,且執(zhí)行效率要低于合成存取器方法和自定的 setter 和 getter 方法。因?yàn)槭褂?KVC 鍵值編碼,它必須先解析字符串,然后在設(shè)置或者訪問對象的實(shí)例變量。

鍵值觀察KVO

  • 鍵值觀察機(jī)制是一種能使得對象獲取到其他對象屬性變化的通知 ,極大的簡化了代碼。

  • 實(shí)現(xiàn) KVO 鍵值觀察模式,被觀察的對象必須使用 KVC 鍵值編碼來修 改它的實(shí)例變量,這樣才能被觀察者觀察到。因此,KVC是KVO的基礎(chǔ)。

Demo

比如我自定義的一個(gè)button

1 2 3 4 5 6 7 8 [self?addObserver:self?forKeyPath:@"highlighted"?options:0?context:nil];? #pragma?mark?KVO? -?(void)observeValueForKeyPath:(NSString?*)keyPath?ofObject:(id)object?change:(NSDictionary?*)change?context:(void?*)context? {? ?????if?([keyPath?isEqualToString:@"highlighted"]?)?{? ??????[self?setNeedsDisplay];? }? ??}

對于系統(tǒng)是根據(jù)keypath去取的到相應(yīng)的值發(fā)生改變,理論上來說是和kvc機(jī)制的道理是一樣的。

KVC機(jī)制通過key找到value的原理。

  • 當(dāng)通過KVC調(diào)用對象時(shí),比如:[self valueForKey:@”someKey”]時(shí),程序會(huì)自動(dòng)試圖通過下面幾種不同的方式解析這個(gè)調(diào)用。

  • 首先查找對象是否帶有 someKey 這個(gè)方法,如果沒找到,會(huì)繼續(xù)查找對象是否帶有someKey這個(gè)實(shí)例變量(iVar),如果還沒有找到,程序會(huì)繼續(xù)試圖調(diào)用 -(id) valueForUndefinedKey:這個(gè)方法。如果這個(gè)方法還是沒有被實(shí)現(xiàn)的話,程序會(huì)拋出一個(gè)NSUndefinedKeyException異常錯(cuò)誤。

  • 補(bǔ)充:KVC查找方法的時(shí)候,不僅僅會(huì)查找someKey這個(gè)方法,還會(huì)查找getsomeKey這個(gè)方法,前面加一個(gè)get,或者_(dá)someKey以_getsomeKey這幾種形式。同時(shí),查找實(shí)例變量的時(shí)候也會(huì)不僅僅查找someKey這個(gè)變量,也會(huì)查找_someKey這個(gè)變量是否存在。

  • 設(shè)計(jì)valueForUndefinedKey:方法的主要目的是當(dāng)你使用-(id)valueForKey方法從對象中請求值時(shí),對象能夠在錯(cuò)誤發(fā)生前,有最后的機(jī)會(huì)響應(yīng)這個(gè)請求。

在 Objective-C 中如何實(shí)現(xiàn) KVO

  • 注冊觀察者(注意:觀察者和被觀察者不會(huì)被保留也不會(huì)被釋放)

1 2 3 -?(void)addObserver:(NSObject?*)observer?forKeyPath:(NSString?*)keyPath? options:(NSKeyValueObservingOptions)options? context:(void?*)context;
  • 接收變更通知

1 2 -?(void)observeValueForKeyPath:(NSString?*)keyPath? ofObject:(id)object?change:(NSDictionary?*)change???context:(void?*)context;
  • 移除對象的觀察者身份

1 2 -?(void)removeObserver:(NSObject?*)observer? forKeyPath:(NSString?*)keyPath;
  • KVO中誰要監(jiān)聽誰注冊,然后對響應(yīng)進(jìn)行處理,使得觀察者與被觀察者完全解耦。KVO只檢測類中的屬性,并且屬性名都是通過NSString來查找,編譯器不會(huì)檢錯(cuò)和補(bǔ)全,全部取決于自己。

代理的作用

  • 代理又叫委托,是一種設(shè)計(jì)模式,代理是對象與對象之間的通信交互,代理解除了對象之間的耦合性。

  • 改變或傳遞控制鏈。允許一個(gè)類在某些特定時(shí)刻通知到其他類,而不需要獲取到那些類的指針。可以減少框架復(fù)雜度。

  • 另外一點(diǎn),代理可以理解為java中的回調(diào)監(jiān)聽機(jī)制的一種類似。

  • 代理的屬性常是assign的原因:防止循環(huán)引用,以至對象無法得到正確的釋放。

NSNotification、Block、Delegate和KVO的區(qū)別。

  • 代理是一種回調(diào)機(jī)制,且是一對一的關(guān)系,通知是一對多的關(guān)系,一個(gè)對向所有的觀察者提供變更通知;

  • 效率:Delegate比NSNOtification高;

  • Delegate和Block一般是一對一的通信;

  • Delegate需要定義協(xié)議方法,代理對象實(shí)現(xiàn)協(xié)議方法,并且需要建立代理關(guān)系才可以實(shí)現(xiàn)通信;

  • Block:Block更加簡潔,不需要定義繁瑣的協(xié)議方法,但通信事件比較多的話,建議使用Delegate;

Objective-C中可修改和不可以修改類型。

  • 可修改不可修改的集合類,就是可動(dòng)態(tài)添加修改和不可動(dòng)態(tài)添加修改。

  • 比如NSArray和NSMutableArray,前者在初始化后的內(nèi)存控件就是固定不可變的,后者可以添加等,可以動(dòng)態(tài)申請新的內(nèi)存空間

當(dāng)我們調(diào)用一個(gè)靜態(tài)方法時(shí),需要對對象進(jìn)行 release 嗎?

  • 不需要,靜態(tài)方法(類方法)創(chuàng)建一個(gè)對象時(shí),對象已被放入自動(dòng)釋放池。在自動(dòng)釋放池被釋放時(shí),很有可能被銷毀。

當(dāng)我們釋放我們的對象時(shí),為什么需要調(diào)用[super dealloc]方法,它的位置又是如何的呢?

  • 因?yàn)樽宇惖哪承?shí)例是繼承自父類的,因此需要調(diào)用[super dealloc]方法, 來釋放父類擁有的實(shí)例,其實(shí)也就是子類本身的。一般來說我們優(yōu)先釋放子類擁 有的實(shí)例,最后釋放父類所擁有的實(shí)例。

對謂詞的認(rèn)識

  • Cocoa 中提供了一個(gè)NSPredicate的類,該類主要用于指定過濾器的條件, 每一個(gè)對象通過謂詞進(jìn)行篩選,判斷條件是否匹配。如果需要了解使用方法,請看謂詞的具體使用

static、self、super關(guān)鍵字的作用

  • 函數(shù)體內(nèi)static變量的作用范圍為該函數(shù)體,不同于auto變量,該變量的內(nèi)存只被分配一次,因此其值在下次調(diào)用時(shí)仍維持上次的值.

  • 在模塊內(nèi)的 static 全局變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問.

  • 在模塊內(nèi)的static函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用,這個(gè)函數(shù)的使用范圍被限制在聲明.

  • 在類中的static成員變量屬于整個(gè)類所擁有,對類的所有對象只有一份拷貝.

  • self:當(dāng)前消息的接收者。

  • super:向父類發(fā)送消息。

#include與#import的區(qū)別,#import 與@class 的區(qū)別

  • #include 和#import其效果相同,都是查詢類中定義的行為(方法);

  • #import不會(huì)引起交叉編譯,確保頭文件只會(huì)被導(dǎo)入一次;

  • @class 的表明,只定 義了類的名稱,而具體類的行為是未知的,一般用于.h 文件;

  • @class 比#import 編譯效率更高。

  • 此外@class 和#import 的主要區(qū)別在于解決引用死鎖的問題。

@public、@protected、@private 它們的含義與作用

  • @public:對象的實(shí)例變量的作用域在任意地方都可以被訪問 ;

  • @protected:對象的實(shí)例變量作用域在本類和子類都可以被訪問 ;

  • @private:實(shí)例變量的作用域只能在本類(自身)中訪問 .

解釋 id 類型

  • 任意類型對象,程序運(yùn)行時(shí)才決定對象的類型。

switch 語句 if 語句區(qū)別與聯(lián)系

  • 均表示條件的判斷,switch語句表達(dá)式只能處理的是整型、字符型和枚舉類型,而選擇流程語句則沒有這樣的限制。但switch語句比選擇流程控制語句效率更高。

isMemberOfClass 和 isKindOfClass 聯(lián)系與區(qū)別

  • 聯(lián)系:兩者都能檢測一個(gè)對象是否是某個(gè)類的成員

  • 區(qū)別:isKindOfClass 不僅用來確定一個(gè)對象是否是一個(gè)類的成員,也可以用來確定一個(gè)對象是否派生自該類的類的成員 ,而isMemberOfClass 只能做到第一點(diǎn)。

  • 舉例:如 ClassA派 生 自NSObject 類 , ClassA *a = [ClassA alloc] init];,[a isKindOfClass:[NSObject class]] 可以檢查出 a 是否是 NSObject派生類 的成員,但 isMemberOfClass 做不到。

iOS 開發(fā)中數(shù)據(jù)持久性有哪幾種?

數(shù)據(jù)存儲(chǔ)的核心都是寫文件。

  • 屬性列表:只有NSString、NSArray、NSDictionary、NSData可writeToFile;存儲(chǔ)依舊是plist文件。plist文件可以存儲(chǔ)的7中數(shù)據(jù)類型:array、dictionary、string、bool、data、date、number。

  • 對象序列化(對象歸檔):對象序列化通過序列化的形式,鍵值關(guān)系存儲(chǔ)到本地,轉(zhuǎn)化成二進(jìn)制流。通過runtime實(shí)現(xiàn)自動(dòng)化歸檔/解檔,請參考這個(gè)文章。實(shí)現(xiàn)NSCoding協(xié)議必須實(shí)現(xiàn)的兩個(gè)方法:

1.編碼(對象序列化):把不能直接存儲(chǔ)到plist文件中得到數(shù)據(jù),轉(zhuǎn)化為二進(jìn)制數(shù)據(jù),NSData,可以存儲(chǔ)到本地;

2.解碼(對象反序列化):把二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為本來的類型。

  • SQLite 數(shù)據(jù)庫:大量有規(guī)律的數(shù)據(jù)使用數(shù)據(jù)庫。

  • CoreData :通過管理對象進(jìn)行增、刪、查、改操作的。它不是一個(gè)數(shù)據(jù)庫,不僅可以使用SQLite數(shù)據(jù)庫來保持?jǐn)?shù)據(jù),也可以使用其他的方式來存儲(chǔ)數(shù)據(jù)。如:XML。

CoreData的介紹:

  • CoreData是面向?qū)ο蟮腁PI,CoreData是iOS中非常重要的一項(xiàng)技術(shù),幾乎在所有編寫的程序中,CoreData都作為數(shù)據(jù)存儲(chǔ)的基礎(chǔ)。

  • CoreData是蘋果官方提供的一套框架,用來解決與對象聲明周期管理、對象關(guān)系管理和持久化等方面相關(guān)的問題。

  • 大多數(shù)情況下,我們引用CoreData作為持久化數(shù)據(jù)的解決方案,并利用它作為持久化數(shù)據(jù)映射為內(nèi)存對象。提供的是對象-關(guān)系映射功能,也就是說,CoreData可以將Objective-C對象轉(zhuǎn)換成數(shù)據(jù),保存到SQL中,然后將保存后的數(shù)據(jù)還原成OC對象。

CoreData的特征

  • 通過CoreData管理應(yīng)用程序的數(shù)據(jù)模型,可以極大程度減少需要編寫的代碼數(shù)量。

  • 將對象數(shù)據(jù)存儲(chǔ)在SQLite數(shù)據(jù)庫已獲得性能優(yōu)化。

  • 提供NSFetchResultsController類用于管理表視圖的數(shù)據(jù),即將Core Data的持久化存儲(chǔ)在表視圖中,并對這些數(shù)據(jù)進(jìn)行管理:增刪查改。

  • 管理undo/redo操縱;

  • 檢查托管對象的屬性值是否正確。

Core Data的6成員對象

  • NSManageObject:被管理的數(shù)據(jù)記錄Managed Object Model是描述應(yīng)用程序的數(shù)據(jù)模型,這個(gè)模型包含實(shí)體(Entity)、特性(Property)、讀取請求(Fetch Request)等。

  • NSManageObjectContext:管理對象上下文,持久性存儲(chǔ)模型對象,參與數(shù)據(jù)對象進(jìn)行各種操作的全過程,并監(jiān)測數(shù)據(jù)對象的變化,以提供對undo/redo的支持及更新綁定到數(shù)據(jù)的UI。

  • NSPersistentStoreCoordinator:連接數(shù)據(jù)庫的Persistent Store Coordinator相當(dāng)于數(shù)據(jù)文件管理器,處理底層的對數(shù)據(jù)文件的讀取和寫入,一般我們與這個(gè)沒有交集。

  • NSManagedObjectModel:被管理的數(shù)據(jù)模型、數(shù)據(jù)結(jié)構(gòu)。

  • NSFetchRequest:數(shù)據(jù)請求;

  • NSEntityDescription:表格實(shí)體結(jié)構(gòu),還需知道.xcdatamodel文件編譯后為.momd或者.mom文件。

Core Data的功能

  • 對于KVC和KVO完整且自動(dòng)化的支持,除了為屬性整合KVO和KVC訪問方法外,還整合了適當(dāng)?shù)募显L問方法來處理多值關(guān)系;

  • 自動(dòng)驗(yàn)證屬性(property)值;

  • 支持跟蹤修改和撤銷操作;

  • 關(guān)系維護(hù),Core Data管理數(shù)據(jù)的關(guān)系傳播,包括維護(hù)對象間的一致性;

  • 在內(nèi)存上和界面上分組、過濾、組織數(shù)據(jù);

  • 自動(dòng)支持對象存儲(chǔ)在外部數(shù)據(jù)倉庫的功能;

  • 創(chuàng)建復(fù)雜請求:無需動(dòng)手寫SQL語句,在獲取請求(fetch request)中關(guān)聯(lián)NSPredicate。NSPreadicate支持基本功能、相關(guān)子查詢和其他高級的SQL特性。它支持正確的Unicode編碼、區(qū)域感知查詢、排序和正則表達(dá)式;

  • 延遲操作:Core Data使用懶加載(lazy loading)方式減少內(nèi)存負(fù)載,還支持部分實(shí)體化延遲加載和復(fù)制對象的數(shù)據(jù)共享機(jī)制;

  • 合并策略:Core Data內(nèi)置版本跟蹤和樂觀鎖(optimistic locking)來支持多用戶寫入沖突的解決,其中,樂觀鎖就是對數(shù)據(jù)沖突進(jìn)行檢測,若沖突就返回沖突的信息;

  • 數(shù)據(jù)遷移:Core Data的Schema Migration工具可以簡化應(yīng)對數(shù)據(jù)庫結(jié)構(gòu)變化的任務(wù),在某些情況允許你執(zhí)行高效率的數(shù)據(jù)庫原地遷移工作;

  • 可選擇針對程序Controller層的集成,來支持UI的顯示同步Core Data在IPhone OS之上,提供NSFetchedResultsController對象來做相關(guān)工作,在Mac OS X上我們用Cocoa提供的綁定(Binding)機(jī)制來完成的。

對象可以被copy的條件

  • 只有實(shí)現(xiàn)了NSCopying和NSMutableCopying協(xié)議的類的對象才能被拷貝,分為不可變拷貝和可變拷貝,具體區(qū)別戳這里

  • NSCopying協(xié)議方法為:

1 2 3 4 5 -?(id)copyWithZone:(NSZone?*)zone?{ ?MyObject?*copy?=?[[[self?class]?allocWithZone:?zone]?init]; ?copy.username?=?[self.username?copyWithZone:zone]; ?return?copy; }

自動(dòng)釋放池工作原理

  • 自動(dòng)釋放池是NSAutorelease類的一個(gè)實(shí)例,當(dāng)向一個(gè)對象發(fā)送autorelease消息時(shí),該對象會(huì)自動(dòng)入池,待池銷毀時(shí),將會(huì)向池中所有對象發(fā)送一條release消息,釋放對象。

  • [pool release]、 [pool drain]表示的是池本身不會(huì)銷毀,而是池子中的臨時(shí)對象都被發(fā)送release,從而將對象銷毀。

在某個(gè)方法中 self.name = _name,name = _name 它 們有區(qū)別嗎,為什么?

  • 前者是存在內(nèi)存管理的setter方法賦值,它會(huì)對_name對象進(jìn)行保留或者拷貝操作

  • 后者是普通賦值

  • 一般來說,在對象的方法里成員變量和方法都是可以訪問的,我們通常會(huì)重寫Setter方法來執(zhí)行某些額外的工作。比如說,外部傳一個(gè)模型過來,那么我會(huì)直接重寫Setter方法,當(dāng)模型傳過來時(shí),也就是意味著數(shù)據(jù)發(fā)生了變化,那么視圖也需要更新顯示,則在賦值新模型的同時(shí)也去刷新UI。

解釋self = [super init]方法

  • 容錯(cuò)處理,當(dāng)父類初始化失敗,會(huì)返回一個(gè)nil,表示初始化失敗。由于繼承的關(guān)系,子類是需要擁有父類的實(shí)例和行為,因此,我們必須先初始化父類,然后再初始化子類

定義屬性時(shí),什么時(shí)候用 assign、retain、copy 以及它們的之間的區(qū)別。

  • assign:普通賦值,一般常用于基本數(shù)據(jù)類型,常見委托設(shè)計(jì)模式, 以此來防止循環(huán)引用。(我們稱之為弱引用).

  • retain:保留計(jì)數(shù),獲得到了對象的所有權(quán),引用計(jì)數(shù)在原有基礎(chǔ)上加1.

  • copy:一般認(rèn)為,是在內(nèi)存中重新開辟了一個(gè)新的內(nèi)存空間,用來 存儲(chǔ)新的對象,和原來的對象是兩個(gè)不同的地址,引用計(jì)數(shù)分別為1。但是當(dāng)copy對象為不可變對象時(shí),那么copy 的作用相當(dāng)于retain。因?yàn)?這樣可以節(jié)約內(nèi)存空間

堆和棧的區(qū)別

  • 棧區(qū)(stack)由編譯器自動(dòng)分配釋放 ,存放方法(函數(shù))的參數(shù)值, 局部變量的值等,棧是向低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是一塊連續(xù)的內(nèi)存的區(qū)域。即棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預(yù)先規(guī)定好的。

  • 堆區(qū)(heap)一般由程序員分配釋放, 若程序員不釋放,程序結(jié)束時(shí)由OS回收,向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存區(qū)域,從而堆獲得的空間比較靈活。

  • 碎片問題:對于堆來講,頻繁的new/delete勢必會(huì)造成內(nèi)存空間的不連續(xù),從而造成大量的碎片,使程序效率降低。對于棧來講,則不會(huì)存在這個(gè)問題,因?yàn)闂J窍冗M(jìn)后出的隊(duì)列,他們是如此的一一對應(yīng),以至于永遠(yuǎn)都不可能有一個(gè)內(nèi)存塊從棧中間彈出.

  • 分配方式:堆都是動(dòng)態(tài)分配的,沒有靜態(tài)分配的堆。棧有2種分配方式:靜態(tài)分配和動(dòng)態(tài)分配。靜態(tài)分配是編譯器完成的,比如局部變量的分配。動(dòng)態(tài)分配由alloca函數(shù)進(jìn)行分配,但是棧的動(dòng)態(tài)分配和堆是不同的,他的動(dòng)態(tài)分配是由編譯器進(jìn)行釋放,無需我們手工實(shí)現(xiàn)。

  • 分配效率:棧是機(jī)器系統(tǒng)提供的數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)會(huì)在底層對棧提供支持:分配專門的寄存器存放棧的地址,壓棧出棧都有專門的指令執(zhí)行,這就決定了棧的效率比較高。堆則是C/C++函數(shù)庫提供的,它的機(jī)制是很復(fù)雜的。

  • 全局區(qū)(靜態(tài)區(qū))(static),全局變量和靜態(tài)變量的存儲(chǔ)是放在一塊 的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。程序結(jié)束后有系統(tǒng)釋放。

  • 文字常量區(qū)—常量字符串就是放在這里的。程序結(jié)束后由系統(tǒng)釋放。

  • 程序代碼區(qū)—存放函數(shù)體的二進(jìn)制代碼

怎樣使用performSelector傳入3個(gè)以上參數(shù),其中一個(gè)為結(jié)構(gòu)體。

因?yàn)橄到y(tǒng)提供的performSelector的API中,并沒有提供三個(gè)參數(shù)。因此,我們只能傳數(shù)組或者字典,但是數(shù)組或者字典只有存入對象類型,而結(jié)構(gòu)體并不是對象類型,我們只能通過對象放入結(jié)構(gòu)作為屬性來傳過去了.

1 2 3 4 -?(id)performSelector:(SEL)aSelector; -?(id)performSelector:(SEL)aSelector?withObject:(id)object; -?(id)performSelector:(SEL)aSelector?withObject: ???(id)object1?withObject:(id)object2;

具體實(shí)現(xiàn)如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 typedef?struct?HYBStruct?{ int?a; int?b; }?*my_struct; @interface?HYBObject?:?NSObject @property?(nonatomic,?assign)?my_struct?arg3; @property?(nonatomic,?copy)??NSString?*arg1; @property?(nonatomic,?copy)?NSString?*arg2; @end @implementation?HYBObject 。 //?在堆上分配的內(nèi)存,我們要手動(dòng)釋放掉 -?(void)dealloc?{ free(self.arg3); } @end

測試:

1 2 3 4 5 6 7 8 9 10 11 12 my_struct?str?=?(my_struct)(malloc(sizeof(my_struct))); str->a?=?1; str->b?=?2; HYBObject?*obj?=?[[HYBObject?alloc]?init]; obj.arg1?=?@"arg1"; obj.arg2?=?@"arg2"; obj.arg3?=?str;? [self?performSelector:@selector(call:)?withObject:obj];? //?在回調(diào)時(shí)得到正確的數(shù)據(jù)的 -?(void)call:(HYBObject?*)obj?{ ?NSLog(@"%d?%d",?obj.arg3->a,?obj.arg3->b); }

UITableViewCell上有個(gè)UILabel,顯示NSTimer實(shí)現(xiàn)的秒表時(shí)間,手指滾動(dòng)cell過程中,label是否刷新,為什么?

這是否刷新取決于timer加入到Run Loop中的Mode是什么。Mode主要是用來指定事件在運(yùn)行循環(huán)中的優(yōu)先級的,分為:

  • NSDefaultRunLoopMode(kCFRunLoopDefaultMode):默認(rèn),空閑狀態(tài)

  • UITrackingRunLoopMode:ScrollView滑動(dòng)時(shí)會(huì)切換到該Mode

  • UIInitializationRunLoopMode:run loop啟動(dòng)時(shí),會(huì)切換到該mode

  • NSRunLoopCommonModes(kCFRunLoopCommonModes):Mode集合

蘋果公開提供的Mode有兩個(gè):

  • NSDefaultRunLoopMode(kCFRunLoopDefaultMode)

  • NSRunLoopCommonModes(kCFRunLoopCommonModes)

  • 在編程中:如果我們把一個(gè)NSTimer對象以NSDefaultRunLoopMode(kCFRunLoopDefaultMode)添加到主運(yùn)行循環(huán)中的時(shí)候, ScrollView滾動(dòng)過程中會(huì)因?yàn)閙ode的切換,而導(dǎo)致NSTimer將不再被調(diào)度。當(dāng)我們滾動(dòng)的時(shí)候,也希望不調(diào)度,那就應(yīng)該使用默認(rèn)模式。但是,如果希望在滾動(dòng)時(shí),定時(shí)器也要回調(diào),那就應(yīng)該使用common mode。

對于單元格重用的理解

  • 當(dāng)屏幕上滑出屏幕時(shí),系統(tǒng)會(huì)把這個(gè)單元格添加到重用隊(duì)列中,等待被重用,當(dāng)有新單元從屏幕外滑入屏幕內(nèi)時(shí),從重用隊(duì)列中找看有沒有可以重用的單元格,若有,就直接用,沒有就重新創(chuàng)建一個(gè)。

解決cell重用的問題

  • UITableView通過重用單元格來達(dá)到節(jié)省內(nèi)存的目的,通過為每個(gè)單元格指定一個(gè)重用標(biāo)示(reuseidentifier),即指定了單元格的種類,以及當(dāng)單元格滾出屏幕時(shí),允許恢復(fù)單元格以便復(fù)用。對于不同種類的單元格使用不同的ID,對于簡單的表格,一個(gè)標(biāo)示符就夠了。

  • 如一個(gè)TableView中有10個(gè)單元格,但屏幕最多顯示4個(gè),實(shí)際上iPhone只為其分配4個(gè)單元格的內(nèi)存,沒有分配10個(gè),當(dāng)滾動(dòng)單元格時(shí),屏幕內(nèi)顯示的單元格重復(fù)使用這4個(gè)內(nèi)存。實(shí)際上分配的cell的個(gè)數(shù)為屏幕最大顯示數(shù),當(dāng)有新的cell進(jìn)入屏幕時(shí),會(huì)隨機(jī)調(diào)用已經(jīng)滾出屏幕的Cell所占的內(nèi)存,這就是Cell的重用。

  • 對于多變的自定義Cell,這種重用機(jī)制會(huì)導(dǎo)致內(nèi)容出錯(cuò),為解決這種出錯(cuò)的方法,把原來的

1 2 UITableViewCell?*cell?=?[tableview?dequeueReusableCellWithIdentifier:defineString] 修改為:UITableViewCell?*cell?=?[tableview?cellForRowAtIndexPath:indexPath];

這樣就解決掉cell重用機(jī)制導(dǎo)致的問題。

有a、b、c、d 4個(gè)異步請求,如何判斷a、b、c、d都完成執(zhí)行?如果需要a、b、c、d順序執(zhí)行,該如何實(shí)現(xiàn)?

  • 對于這四個(gè)異步請求,要判斷都執(zhí)行完成最簡單的方式就是通過GCD的group來實(shí)現(xiàn):

1 2 3 4 5 6 7 8 9 dispatch_queue_t?queue?=?dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,?0); dispatch_group_t?group?=?dispatch_group_create(); dispatch_group_async(group,?queue,?^{?/*任務(wù)a?*/?}); dispatch_group_async(group,?queue,?^{?/*任務(wù)b?*/?}); dispatch_group_async(group,?queue,?^{?/*任務(wù)c?*/?});? dispatch_group_async(group,?queue,?^{?/*任務(wù)d?*/?});? dispatch_group_notify(group,dispatch_get_main_queue(),?^{ ?//?在a、b、c、d異步執(zhí)行完成后,會(huì)回調(diào)這里 });
  • 當(dāng)然,我們還可以使用非常老套的方法來處理,通過四個(gè)變量來標(biāo)識a、b、c、d四個(gè)任務(wù)是否完成,然后在runloop中讓其等待,當(dāng)完成時(shí)才退出runloop。但是這樣做會(huì)讓后面的代碼得不到執(zhí)行,直到Run loop執(zhí)行完畢。

  • 解釋:要求順序執(zhí)行,那么可以將任務(wù)放到串行隊(duì)列中,自然就是按順序來異步執(zhí)行了。

使用block有什么好處?使用NSTimer寫出一個(gè)使用block顯示(在UILabel上)秒表的代碼。

  • 代碼緊湊,傳值、回調(diào)都很方便,省去了寫代理的很多代碼。

  • NSTimer封裝成的block,具體實(shí)現(xiàn)。

  • 實(shí)現(xiàn)方法:

1 2 3 4 5 6 NSTimer?*timer?=?[NSTimer?scheduledTimerWithTimeInterval:1.0 ??????????????????????????????repeats:YES ?????????????????????????????callback:^()?{ ??weakSelf.secondsLabel.text?=?... } [[NSRunLoop?currentRunLoop]?addTimer:timer?forMode:NSRunLoopCommonModes];

一個(gè)view已經(jīng)初始化完畢,view上面添加了n個(gè)button,除用view的tag之外,還可以采用什么辦法來找到自己想要的button來修改button的值。

有2種方法解決:

  • 第一種:如果是點(diǎn)擊某個(gè)按鈕后,才會(huì)刷新它的值,其它不用修改,那么不用引用任何按鈕,直接在回調(diào)時(shí),就已經(jīng)將接收響應(yīng)的按鈕給傳過來了,直接通過它修改即可。

  • 第二種:點(diǎn)擊某個(gè)按鈕后,所有與之同類型的按鈕都要修改值,那么可以通過在創(chuàng)建按鈕時(shí)將按鈕存入到數(shù)組中,在需要的時(shí)候遍歷查找。

線程與進(jìn)程的區(qū)別和聯(lián)系?

  • 一個(gè)程序至少要有進(jìn)城,一個(gè)進(jìn)程至少要有一個(gè)線程。

  • 進(jìn)程:資源分配的最小獨(dú)立單元,進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。

  • 線程:進(jìn)程下的一個(gè)分支,是進(jìn)程的實(shí)體,是CPU調(diào)度和分派的基本單元,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位,線程自己基本不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(程序計(jì)數(shù)器、一組寄存器、棧),但是它可與同屬一個(gè)進(jìn)程的其他線程共享進(jìn)程所擁有的全部資源。

  • 進(jìn)程和線程都是由操作系統(tǒng)所體會(huì)的程序運(yùn)行的基本單元,系統(tǒng)利用該基本單元實(shí)現(xiàn)系統(tǒng)對應(yīng)用的并發(fā)性。

  • 進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進(jìn)程有獨(dú)立的地址空間,一個(gè)進(jìn)程崩潰后,在保護(hù)模式下不會(huì)對其它進(jìn)程產(chǎn)生影響,而線程只是一個(gè)進(jìn)程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨(dú)的地址空間,一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉,所以多進(jìn)程的程序要比多線程的程序健壯,但在進(jìn)程切換時(shí),耗費(fèi)資源較大,效率要差一些。

  • 但對于一些要求同時(shí)進(jìn)行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進(jìn)程。

多線程編程

  • NSThread:當(dāng)需要進(jìn)行一些耗時(shí)操作時(shí)會(huì)把耗時(shí)的操作放到線程中。線程同步:多個(gè)線程同時(shí)訪問一個(gè)數(shù)據(jù)會(huì)出問題,NSlock、線程同步塊、@synchronized(self){}。

  • NSOperationQueue操作隊(duì)列(不需考慮線程同步問題)。編程的重點(diǎn)都放在main里面,NSInvocationOperation、BSBlockOperation、自定義Operation。創(chuàng)建一個(gè)操作綁定相應(yīng)的方法,當(dāng)把操作添加到操作隊(duì)列中時(shí),操作綁定的方法就會(huì)自動(dòng)執(zhí)行了,當(dāng)把操作添加到操作隊(duì)列中時(shí),默認(rèn)會(huì)調(diào)用main方法。

  • GCD(`Grand Central Dispatch)宏大的中央調(diào)度,串行隊(duì)列、并發(fā)隊(duì)列、主線程隊(duì)列;

  • 同步和異步:同步指第一個(gè)任務(wù)不執(zhí)行完,不會(huì)開始第二個(gè),異步是不管第一個(gè)有沒有執(zhí)行完,都開始第二個(gè)。

  • 串行和并行:串行是多個(gè)任務(wù)按一定順序執(zhí)行,并行是多個(gè)任務(wù)同時(shí)執(zhí)行;

  • 代碼是在分線程執(zhí)行,在主線程嘟列中刷新UI。

多線程編程是防止主線程堵塞、增加運(yùn)行效率的最佳方法。

  • Apple提供了NSOperation這個(gè)類,提供了一個(gè)優(yōu)秀的多線程編程方法;

  • 一個(gè)NSOperationQueue操作隊(duì)列,相當(dāng)于一個(gè)線程管理器,而非一個(gè)線程,因?yàn)槟憧梢栽O(shè)置這個(gè)線程管理器內(nèi)可以并行運(yùn)行的線程數(shù)量等。

  • 多線程是一個(gè)比較輕量級的方法來實(shí)現(xiàn)單個(gè)應(yīng)用程序內(nèi)多個(gè)代碼執(zhí)行路徑。

  • iPhoneOS下的主線程的堆棧大小是1M。第二個(gè)線程開始就是512KB,并且該值不能通過編譯器開關(guān)或線程API函數(shù)來更改,只有主線程有直接修改UI的能力。

定時(shí)器與線程的區(qū)別

  • 定時(shí)器;可以執(zhí)行多次,默認(rèn)在主線程中。

  • 線程:只能執(zhí)行一次。

Apple設(shè)備尺寸和編程尺寸

iPhone設(shè)備

iPod設(shè)備

iPad設(shè)備

TCP和UDP的區(qū)別于聯(lián)系

  • TCP為傳輸控制層協(xié)議,為面向連接、可靠的、點(diǎn)到點(diǎn)的通信;

  • UDP為用戶數(shù)據(jù)報(bào)協(xié)議,非連接的不可靠的點(diǎn)到多點(diǎn)的通信;

  • TCP側(cè)重可靠傳輸,UDP側(cè)重快速傳輸。

TCP連接的三次握手

  • 第一次握手:客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);

  • 第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包,即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN+RECV狀態(tài);

  • 第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次狀態(tài)。

Scoket連接和HTTP連接的區(qū)別

  • HTTP協(xié)議是基于TCP連接的,是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)。Socket是對TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個(gè)調(diào)用接口(API),通過Socket,我們才能使用TCP/IP協(xié)議。

  • HTTP連接:短連接,客戶端向服務(wù)器發(fā)送一次請求,服務(wù)器響應(yīng)后連接斷開,節(jié)省資源。服務(wù)器不能主動(dòng)給客戶端響應(yīng)(除非采用HTTP長連接技術(shù)),iPhone主要使用類NSURLConnection。

  • Socket連接:長連接,客戶端跟服務(wù)器端直接使用Socket進(jìn)行連接,沒有規(guī)定連接后斷開,因此客戶端和服務(wù)器段保持連接通道,雙方可以主動(dòng)發(fā)送數(shù)據(jù),一般多用于游戲.Socket默認(rèn)連接超時(shí)時(shí)間是30秒,默認(rèn)大小是8K(理解為一個(gè)數(shù)據(jù)包大小)。

HTTP協(xié)議的特點(diǎn),關(guān)于HTTP請求GET和POST的區(qū)別

GET和POST的區(qū)別:

  • HTTP超文本傳輸協(xié)議,是短連接,是客戶端主動(dòng)發(fā)送請求,服務(wù)器做出響應(yīng),服務(wù)器響應(yīng)之后,鏈接斷開。HTTP是一個(gè)屬于應(yīng)用層面向?qū)ο蟮膮f(xié)議,HTTP有兩類報(bào)文:請求報(bào)文和響應(yīng)報(bào)文。

  • HTTP請求報(bào)文:一個(gè)HTTP請求報(bào)文由請求行、請求頭部、空行和請求數(shù)據(jù)4部分組成。

  • HTTP響應(yīng)報(bào)文:由三部分組成:狀態(tài)行、消息報(bào)頭、響應(yīng)正文。

  • GET請求:參數(shù)在地址后拼接,沒有請求數(shù)據(jù),不安全(因?yàn)樗袇?shù)都拼接在地址后面),不適合傳輸大量數(shù)據(jù)(長度有限制,為1024個(gè)字節(jié))。

GET提交、請求的數(shù)據(jù)會(huì)附在URL之后,即把數(shù)據(jù)放置在HTTP協(xié)議頭中。

以?分割URL和傳輸數(shù)據(jù),多個(gè)參數(shù)用&連接。如果數(shù)據(jù)是英文字母或數(shù)字,原樣發(fā)送,

如果是空格,轉(zhuǎn)換為+,如果是中文/其他字符,則直接把字符串用BASE64加密。

  • POST請求:參數(shù)在請求數(shù)據(jù)區(qū)放著,相對GET請求更安全,并且數(shù)據(jù)大小沒有限制。把提交的數(shù)據(jù)放置在HTTP包的包體中.

  • GET提交的數(shù)據(jù)會(huì)在地址欄顯示出來,而POST提交,地址欄不會(huì)改變。

傳輸數(shù)據(jù)的大小:

  • GET提交時(shí),傳輸數(shù)據(jù)就會(huì)受到URL長度限制,POST由于不是通過URL傳值,理論上書不受限。

安全性:

  • POST的安全性要比GET的安全性高;

  • 通過GET提交數(shù)據(jù),用戶名和密碼將明文出現(xiàn)在URL上,比如登陸界面有可能被瀏覽器緩存。

  • HTTPS:安全超文本傳輸協(xié)議(Secure Hypertext Transfer Protocol),它是一個(gè)安全通信通道,基于HTTP開發(fā),用于客戶計(jì)算機(jī)和服務(wù)器之間交換信息,使用安全套結(jié)字層(SSI)進(jìn)行信息交換,即HTTP的安全版。

ASIHttpRequest、AFNetWorking之間的區(qū)別

  • ASIHttpRequest功能強(qiáng)大,主要是在MRC下實(shí)現(xiàn)的,是對系統(tǒng)CFNetwork API進(jìn)行了封裝,支持HTTP協(xié)議的CFHTTP,配置比較復(fù)雜,并且ASIHttpRequest框架默認(rèn)不會(huì)幫你監(jiān)聽網(wǎng)絡(luò)改變,如果需要讓ASIHttpRequest幫你監(jiān)聽網(wǎng)絡(luò)狀態(tài)改變,并且手動(dòng)開始這個(gè)功能。

  • AFNetWorking構(gòu)建于NSURLConnection、NSOperation以及其他熟悉的Foundation技術(shù)之上。擁有良好的架構(gòu),豐富的API及模塊構(gòu)建方式,使用起來非常輕松。它基于NSOperation封裝的,AFURLConnectionOperation子類。

  • ASIHttpRequest是直接操作對象ASIHttpRequest是一個(gè)實(shí)現(xiàn)了NSCoding協(xié)議的NSOperation子類;AFNetWorking直接操作對象的AFHttpClient,是一個(gè)實(shí)現(xiàn)NSCoding和NSCopying協(xié)議的NSObject子類。

  • 同步請求:ASIHttpRequest直接通過調(diào)用一個(gè)startSynchronous方法;AFNetWorking默認(rèn)沒有封裝同步請求,如果開發(fā)者需要使用同步請求,則需要重寫getPath:paraments:success:failures方法,對于AFHttpRequestOperation進(jìn)行同步處理。

  • 性能對比:AFNetworking請求優(yōu)于ASIHttpRequest;

XML數(shù)據(jù)解析方式各有什么不同,JSON解析有哪些框架?

  • XML數(shù)據(jù)解析的兩種解析方式:DOM解析和SAX解析;

  • DOM解析必須完成DOM樹的構(gòu)造,在處理規(guī)模較大的XML文檔時(shí)就很耗內(nèi)存,占用資源較多,讀入整個(gè)XML文檔并構(gòu)建一個(gè)駐留內(nèi)存的樹結(jié)構(gòu)(節(jié)點(diǎn)樹),通過遍歷樹結(jié)構(gòu)可以檢索任意XML節(jié)點(diǎn),讀取它的屬性和值,通常情況下,可以借助XPath查詢XML節(jié)點(diǎn);

  • SAX與DOM不同,它是事件驅(qū)動(dòng)模型,解析XML文檔時(shí)每遇到一個(gè)開始或者結(jié)束標(biāo)簽、屬性或者一條指令時(shí),程序就產(chǎn)生一個(gè)事件進(jìn)行相應(yīng)的處理,一邊讀取XML文檔一邊處理,不必等整個(gè)文檔加載完才采取措施,當(dāng)在讀取解析過程中遇到需要處理的對象,會(huì)發(fā)出通知進(jìn)行處理。因此,SAX相對于DOM來說更適合操作大的XML文檔。

  • JSON解析:性能比較好的主要是第三方的JSONKIT和iOS自帶的JSON解析類,其中自帶的JSON解析性能最高,但只能用于iOS5之后。

如何進(jìn)行真機(jī)調(diào)試?

1.首先需要用鑰匙串創(chuàng)建一個(gè)鑰匙(key);

2.將鑰匙串上傳到官網(wǎng),獲取iOS Development證書;

3.創(chuàng)建App ID即我們應(yīng)用程序中的Boundle ID;

4.添加Device ID即UDID;

5.通過勾選前面所創(chuàng)建的證書:App ID、Device ID;

6.生成mobileprovision文件;

7.先決條件:申請開發(fā)者賬號 99美刀

APP發(fā)布的上架流程

1.登錄應(yīng)用發(fā)布網(wǎng)站添加應(yīng)用信息;

2.下載安裝發(fā)布證書;

3.選擇發(fā)布證書,使用Archive編譯發(fā)布包,用Xcode將代碼(發(fā)布包)上傳到服務(wù)器;

4.等待審核通過;

5.生成IPA:菜單欄->Product->Archive.

SVN的使用

  • SVN=版本控制+備份服務(wù)器,可以把SVN當(dāng)成備份服務(wù)器,并且可以幫助你記住每次上服務(wù)器的檔案內(nèi)容,并自動(dòng)賦予每次變更的版本;

  • SVN的版本控制:所有上傳版本都會(huì)幫您記錄下來,也有版本分支及合并等功能。SVN可以讓不同的開發(fā)者存取同樣的檔案,并且利用SVN Server作為檔案同步的機(jī)制,即您有檔案更新時(shí),無需將檔案寄送給您的開發(fā)成員。SVN的存放檔案方式是采用差異備份的方式,即會(huì)備份到不同的地方,節(jié)省硬盤空間,也可以對非文字文件進(jìn)行差異備份。

  • SVN的重要性:備份工作檔案的重要性、版本控管的重要性、伙伴間的數(shù)據(jù)同步的重要性、備份不同版本是很耗費(fèi)硬盤空間的;

  • 防止沖突:

1.防止代碼沖突:不要多人同時(shí)修改同一文件,例如:A、B都修改同一個(gè)文件,先讓A修改,然后提交到服務(wù)器,然后B更新下來,再進(jìn)行修改;

2.服務(wù)器上的項(xiàng)目文件Xcodeproj,僅讓一個(gè)人管理提交,其他人只更新,防止文件發(fā)生沖突。

如何進(jìn)行網(wǎng)絡(luò)消息推送

  • 一種是Apple自己提供的通知服務(wù)(APNS服務(wù)器)、一種是用第三方推送機(jī)制。

  • 首先應(yīng)用發(fā)送通知,系統(tǒng)彈出提示框詢問用戶是否允許,當(dāng)用戶允許后向蘋果服務(wù)器(APNS)請求deviceToken,并由蘋果服務(wù)器發(fā)送給自己的應(yīng)用,自己的應(yīng)用將DeviceToken發(fā)送自己的服務(wù)器,自己服務(wù)器想要發(fā)送網(wǎng)絡(luò)推送時(shí)將deviceToken以及想要推送的信息發(fā)送給蘋果服務(wù)器,蘋果服務(wù)器將信息發(fā)送給應(yīng)用。

  • 推送信息內(nèi)容,總?cè)萘坎怀^256個(gè)字節(jié);

  • iOS SDK本身提供的APNS服務(wù)器推送,它可以直接推送給目標(biāo)用戶并根據(jù)您的方式彈出提示。

優(yōu)點(diǎn):不論應(yīng)用是否開啟,都會(huì)發(fā)送到手機(jī)端;

缺點(diǎn):消息推送機(jī)制是蘋果服務(wù)端控制,個(gè)別時(shí)候可能會(huì)有延遲,因?yàn)樘O果服務(wù)器也有隊(duì)列來處理所有的消息請求;

  • 第三方推送機(jī)制,普遍使用Socket機(jī)制來實(shí)現(xiàn),幾乎可以達(dá)到即時(shí)的發(fā)送到目標(biāo)用戶手機(jī)端,適用于即時(shí)通訊類應(yīng)用。

優(yōu)點(diǎn):實(shí)時(shí)的,取決于心跳包的節(jié)奏;

缺點(diǎn):iOS系統(tǒng)的限制,應(yīng)用不能長時(shí)間的后臺(tái)運(yùn)行,所以應(yīng)用關(guān)閉的情況下這種推送機(jī)制不可用。

網(wǎng)絡(luò)七層協(xié)議

  • 應(yīng)用層:

1.用戶接口、應(yīng)用程序;

2.Application典型設(shè)備:網(wǎng)關(guān);

3.典型協(xié)議、標(biāo)準(zhǔn)和應(yīng)用:TELNET、FTP、HTTP

  • 表示層:

1.數(shù)據(jù)表示、壓縮和加密presentation

2.典型設(shè)備:網(wǎng)關(guān)

3.典型協(xié)議、標(biāo)準(zhǔn)和應(yīng)用:ASCLL、PICT、TIFF、JPEG|MPEG

4.表示層相當(dāng)于一個(gè)東西的表示,表示的一些協(xié)議,比如圖片、聲音和視頻MPEG。

  • 會(huì)話層:

1.會(huì)話的建立和結(jié)束;

2.典型設(shè)備:網(wǎng)關(guān);

3.典型協(xié)議、標(biāo)準(zhǔn)和應(yīng)用:RPC、SQL、NFS、X WINDOWS、ASP

  • 傳輸層:

1.主要功能:端到端控制Transport;

2.典型設(shè)備:網(wǎng)關(guān);

3.典型協(xié)議、標(biāo)準(zhǔn)和應(yīng)用:TCP、UDP、SPX

  • 網(wǎng)絡(luò)層:

1.主要功能:路由、尋址Network;

2.典型設(shè)備:路由器;

3.典型協(xié)議、標(biāo)準(zhǔn)和應(yīng)用:IP、IPX、APPLETALK、ICMP;

  • 數(shù)據(jù)鏈路層:

1.主要功能:保證無差錯(cuò)的疏忽鏈路的data link;

2.典型設(shè)備:交換機(jī)、網(wǎng)橋、網(wǎng)卡;

3.典型協(xié)議、標(biāo)準(zhǔn)和應(yīng)用:802.2、802.3ATM、HDLC、FRAME RELAY;

  • 物理層:

1.主要功能:傳輸比特流Physical;

2.典型設(shè)備:集線器、中繼器

3.典型協(xié)議、標(biāo)準(zhǔn)和應(yīng)用:V.35、EIA/TIA-232.

對NSUserDefaults的理解

  • NSUserDefaults:系統(tǒng)提供的一種存儲(chǔ)數(shù)據(jù)的方式,主要用于保存少量的數(shù)據(jù),默認(rèn)存儲(chǔ)到library下的Preferences文件夾。

SDWebImage原理

調(diào)用類別的方法:

  • 從內(nèi)存中(字典)找圖片(當(dāng)這個(gè)圖片在本次程序加載過),找到直接使用;

  • 從沙盒中找,找到直接使用,緩存到內(nèi)存。

  • 從網(wǎng)絡(luò)上獲取,使用,緩存到內(nèi)存,緩存到沙盒。

OC中是否有二維數(shù)組,如何實(shí)現(xiàn)二維數(shù)組?

  • OC中沒有二維數(shù)組,可通過嵌套數(shù)組實(shí)現(xiàn)二維數(shù)組。

LayoutSubViews在什么時(shí)候被調(diào)用?

  • 當(dāng)View本身的frame改變時(shí),會(huì)調(diào)用這個(gè)方法。

深拷貝和淺拷貝

  • 如果對象有個(gè)指針型成員變量指向內(nèi)存中的某個(gè)資源,那么如何復(fù)制這個(gè)對象呢?你會(huì)只是復(fù)制指針的值傳給副本的新對象嗎?指針只是存儲(chǔ)內(nèi)存中資源地址的占位符。在復(fù)制操作中,如果只是將指針復(fù)制給新對象,那么底層的資源實(shí)際上仍然由兩個(gè)實(shí)例在共享。

示例圖1

  • 淺復(fù)制:兩個(gè)實(shí)例的指針仍指向內(nèi)存中的同一資源,只復(fù)制指針值而不是實(shí)際資源;

  • 深復(fù)制:不僅復(fù)制指針值,還復(fù)制指向指針?biāo)赶虻馁Y源。如下圖:

示例圖2

單例模式理解與使用

  • 單例模式是一種常用設(shè)計(jì)模式,單例模式是一個(gè)類在系統(tǒng)中只有一個(gè)實(shí)例對象。通過全局的一個(gè)入口點(diǎn)對這個(gè)實(shí)例對象進(jìn)行訪問;

  • iOS中單例模式的實(shí)現(xiàn)方式一般分為兩種:非ARC和ARC+GCD。

對沙盒的理解

  • 每個(gè)iOS應(yīng)用都被限制在“沙盒”中,沙盒相當(dāng)于一個(gè)加了僅主人可見權(quán)限的文件夾,及時(shí)在應(yīng)用程序安裝過程中,系統(tǒng)為每個(gè)單獨(dú)的應(yīng)用程序生成它的主目錄和一些關(guān)鍵的子目錄。蘋果對沙盒有幾條限制:

1.應(yīng)用程序在自己的沙盒中運(yùn)作,但是不能訪問任何其他應(yīng)用程序的沙盒;

2.應(yīng)用之間不能共享數(shù)據(jù),沙盒里的文件不能被復(fù)制到其他應(yīng)用程序的文件夾中,也不能把其他應(yīng)用文件夾復(fù)制到沙盒中;

3.蘋果禁止任何讀寫沙盒以外的文件,禁止應(yīng)用程序?qū)?nèi)容寫到沙盒以外的文件夾中;

4.沙盒目錄里有三個(gè)文件夾:Documents——存儲(chǔ);應(yīng)用程序的數(shù)據(jù)文件,存儲(chǔ)用戶數(shù)據(jù)或其他定期備份的信息;Library下有兩個(gè)文件夾,Caches存儲(chǔ)應(yīng)用程序再次啟動(dòng)所需的信息,

Preferences包含應(yīng)用程序的偏好設(shè)置文件,不可在這更改偏好設(shè)置;temp存放臨時(shí)文件即應(yīng)用程序再次啟動(dòng)不需要的文件。

  • 獲取沙盒根目錄的方法,有幾種方法:用NSHomeDirectory獲取。

  • 獲取Document路徑:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).

對瀑布流的理解

  • 首先圖片的寬度都是一樣的,1.將圖片等比例壓縮,讓圖片不變形;2.計(jì)算圖片最低應(yīng)該擺放的位置,哪一列低就放在哪;3.進(jìn)行最優(yōu)排列,在ScrollView的基礎(chǔ)上添加兩個(gè)tableView,然后將之前所計(jì)算的scrollView的高度通過tableView展示出來。

  • 如何使用兩個(gè)TableView產(chǎn)生聯(lián)動(dòng):將兩個(gè)tableView的滾動(dòng)事件禁止掉,最外層scrollView滾動(dòng)時(shí)將兩個(gè)TableView跟著滾動(dòng),并且更改contentOffset,這樣產(chǎn)生效果滾動(dòng)的兩個(gè)tableView。

ViewController 的 loadView、viewDidLoad、viewDidUnload 分別是在什么時(shí)候調(diào)用的?

  • viewDidLoad在view從nib文件初始化時(shí)調(diào)用,loadView在controller的view為nil時(shí)調(diào)用。

  • 此方法在編程實(shí)現(xiàn)view時(shí)調(diào)用,view控制器默認(rèn)會(huì)注冊memory warning notification,當(dāng)view controller的任何view沒有用的時(shí)候,viewDidUnload會(huì)被調(diào)用,在這里實(shí)現(xiàn)將retain的view release,如果是retain的IBOutlet view 屬性則不要在這里release,IBOutlet會(huì)負(fù)責(zé)release 。

關(guān)鍵字volatile有什么含意?并給出三個(gè)不同的例子:

  • 一個(gè)定義為volatile的變量是說這變量可能會(huì)被意想不到地改變,這樣,編譯器就不會(huì)去假設(shè)這個(gè)變量的值了。精確地說就是,優(yōu)化器在用到這個(gè)變量時(shí)必須每次都小心地重新讀取這個(gè)變量的值,而不是使用保存在寄存器里的備份。下面是volatile變量的幾個(gè)例子:

1.并行設(shè)備的硬件寄存器(如:狀態(tài)寄存器);

2.一個(gè)中斷服務(wù)子程序中會(huì)訪問到的非自動(dòng)變量(Non-automatic variables);

3.多線程應(yīng)用中被幾個(gè)任務(wù)共享的變量。

@synthesize、@dynamic的理解

  • @synthesize是系統(tǒng)自動(dòng)生成getter和setter屬性聲明;@synthesize的意思是,除非開發(fā)人員已經(jīng)做了,否則由編譯器生成相應(yīng)的代碼,以滿足屬性聲明;

  • @dynamic是開發(fā)者自已提供相應(yīng)的屬性聲明,@dynamic意思是由開發(fā)人員提供相應(yīng)的代碼:對于只讀屬性需要提供setter,對于讀寫屬性需要提供 setter 和getter。查閱了一些資料確定@dynamic的意思是告訴編譯器,屬性的獲取與賦值方法由用戶自己實(shí)現(xiàn), 不自動(dòng)生成。

frame和bounds有什么不同?

  • frame指的是:該view在父view坐標(biāo)系統(tǒng)中的位置和大小。(參照點(diǎn)是父親的坐標(biāo)系統(tǒng))

  • bounds指的是:該view在本身坐標(biāo)系統(tǒng)中的位置和大小。(參照點(diǎn)是本身坐標(biāo)系統(tǒng))

view的touch事件有哪些?

1 2 3 4 -?(void)touchesBegan:(NSSet?*)touches?withEvent:(UIEvent?*)event; -?(void)touchesMoved:(NSSet?*)touches?withEvent:(UIEvent?*)event; -?(void)touchesEnded:(NSSet?*)touches?withEvent:(UIEvent?*)event;? -?(void)touchesCancelled:(NSSet?*)touches?withEvent:(UIEvent?*)event;

自定義實(shí)現(xiàn)UITabbarController的原理

  • 運(yùn)用字典,點(diǎn)擊五個(gè)按鈕的一個(gè)可以從字典里選擇一個(gè)控制器對象,將其View顯示到主控制器視圖上。

iOS中的響應(yīng)者鏈的工作原理

  • 每一個(gè)應(yīng)用有一個(gè)響應(yīng)者鏈,我們的視圖結(jié)構(gòu)是一個(gè)N叉樹(一個(gè)視圖可以有多個(gè)子視圖,一個(gè)子視圖同一時(shí)刻只有一個(gè)父視圖),而每一個(gè)繼承UIResponder的對象都可以在這個(gè)N叉樹中扮演一個(gè)節(jié)點(diǎn)。

  • 當(dāng)葉節(jié)點(diǎn)成為最高響應(yīng)者的時(shí)候,從這個(gè)葉節(jié)點(diǎn)開始往其父節(jié)點(diǎn)開始追朔出一條鏈,那么對于這一個(gè)葉節(jié)點(diǎn)來講,這一條鏈就是當(dāng)前的響應(yīng)者鏈。響應(yīng)者鏈將系統(tǒng)捕獲到的UIEvent與UITouch從葉節(jié)點(diǎn)開始層層向下分發(fā),期間可以選擇停止分發(fā),也可以選擇繼續(xù)向下分發(fā)。

  • 如需了解更多細(xì)節(jié),請讀這篇文章。

View和View之間傳值方式

  • 對象的property屬性傳值;

  • 方法參數(shù)傳值;

  • NSUserDefault傳值;

  • 塊傳值。

property屬性的修飾符的作用

  • getter=getName、setter=setName:設(shè)置setter與getter的方法名;

  • readwrite、readonly:設(shè)置可供訪問級別;

  • assign:方法直接賦值,不進(jìn)行任何retain操作,為了解決原類型與環(huán)循引用問題;

  • retain:其setter方法對參數(shù)進(jìn)行release舊值再retain新值,所有實(shí)現(xiàn)都是這個(gè)順序;

  • copy:其setter方法進(jìn)行copy操作,與retain處理流程一樣,先對舊值release,再copy出新的對象,retainCount為1。這是為了減少對上下文的依賴而引入的機(jī)制。

  • nonatomic:非原子性訪問,不加同步, 多線程并發(fā)訪問會(huì)提高性能。注意,如果不加此屬性,則默認(rèn)是兩個(gè)訪問方法都為原子型事務(wù)訪問。

對于Run Loop的理解

  • RunLoop,是多線程的法寶,即一個(gè)線程一次只能執(zhí)行一個(gè)任務(wù),執(zhí)行完任務(wù)后就會(huì)退出線程。主線程執(zhí)行完即時(shí)任務(wù)時(shí)會(huì)繼續(xù)等待接收事件而不退出。非主線程通常來說就是為了執(zhí)行某一任務(wù)的,執(zhí)行完畢就需要?dú)w還資源,因此默認(rèn)是不運(yùn)行RunLoop的;

  • 每一個(gè)線程都有其對應(yīng)的RunLoop,只是默認(rèn)只有主線程的RunLoop是啟動(dòng)的,其它子線程的RunLoop默認(rèn)是不啟動(dòng)的,若要啟動(dòng)則需要手動(dòng)啟動(dòng);

  • 在一個(gè)單獨(dú)的線程中,如果需要在處理完某個(gè)任務(wù)后不退出,繼續(xù)等待接收事件,則需要啟用RunLoop;

  • NSRunLoop提供了一個(gè)添加NSTimer的方法,可以指定Mode,如果要讓任何情況下都回調(diào),則需要設(shè)置Mode為Common模式;

  • 實(shí)質(zhì)上,對于子線程的runloop默認(rèn)是不存在的,因?yàn)樘O果采用了懶加載的方式。如果我們沒有手動(dòng)調(diào)用[NSRunLoop currentRunLoop]的話,就不會(huì)去查詢是否存在當(dāng)前線程的RunLoop,也就不會(huì)去加載,更不會(huì)創(chuàng)建。

SQLite中常用的SQL語句

  • 創(chuàng)建表:creat table 表名 (字段名 字段數(shù)據(jù)類型 是否為主鍵, 字段名 字段數(shù)據(jù)類型, 字段名 字段數(shù)據(jù)類型...);

  • 增: insert into 表名 (字段1, 字段2...) values (值1, 值2...);

  • 刪: delete from 表名 where 字段 = 值;

XIB與Storyboards的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  • XIB:在編譯前就提供了可視化界面,可以直接拖控件,也可以直接給控件添加約束,更直觀一些,而且類文件中就少了創(chuàng)建控件的代碼,確實(shí)簡化不少,通常每個(gè)XIB對應(yīng)一個(gè)類。

  • Storyboard:在編譯前提供了可視化界面,可拖控件,可加約束,在開發(fā)時(shí)比較直觀,而且一個(gè)storyboard可以有很多的界面,每個(gè)界面對應(yīng)一個(gè)類文件,通過storybard,可以直觀地看出整個(gè)App的結(jié)構(gòu)。

缺點(diǎn):

  • XIB:需求變動(dòng)時(shí),需要修改XIB很大,有時(shí)候甚至需要重新添加約束,導(dǎo)致開發(fā)周期變長。XIB載入相比純代碼自然要慢一些。對于比較復(fù)雜邏輯控制不同狀態(tài)下顯示不同內(nèi)容時(shí),使用XIB是比較困難的。當(dāng)多人團(tuán)隊(duì)或者多團(tuán)隊(duì)開發(fā)時(shí),如果XIB文件被發(fā)動(dòng),極易導(dǎo)致沖突,而且解決沖突相對要困難很多。

  • Storyboard:需求變動(dòng)時(shí),需要修改storyboard上對應(yīng)的界面的約束,與XIB一樣可能要重新添加約束,或者添加約束會(huì)造成大量的沖突,尤其是多團(tuán)隊(duì)開發(fā)。對于復(fù)雜邏輯控制不同顯示內(nèi)容時(shí),比較困難。當(dāng)多人團(tuán)隊(duì)或者多團(tuán)隊(duì)開發(fā)時(shí),大家會(huì)同時(shí)修改一個(gè)storyboard,導(dǎo)致大量沖突,解決起來相當(dāng)困難。

將字符串“2015-04-10”格式化日期轉(zhuǎn)為NSDate類型

1 2 3 4 5 6 7 NSString?*timeStr?=?@"2015-04-10"; NSDateFormatter?*formatter?=?[[NSDateFormatter?alloc]?init]; formatter.dateFormat?=?@"yyyy-MM-dd"; formatter.timeZone?=?[NSTimeZone?defaultTimeZone]; NSDate?*date?=?[formatter?dateFromString:timeStr]; //?2015-04-09?16:00:00?+0000 NSLog(@"%@",?date);

隊(duì)列和多線程的使用原理

在iOS中隊(duì)列分為以下幾種:

  • 串行隊(duì)列:隊(duì)列中的任務(wù)只會(huì)順序執(zhí)行;

1 dispatch_queue_t?q?=?dispatch_queue_create("...",?DISPATCH_QUEUE_SERIAL);
  • 并行隊(duì)列: 隊(duì)列中的任務(wù)通常會(huì)并發(fā)執(zhí)行;

1 dispatch_queue_t?q?=?dispatch_queue_create("......",DISPATCH_QUEUE_CONCURRENT);
  • 全局隊(duì)列:是系統(tǒng)的,直接拿過來(GET)用就可以;與并行隊(duì)列類似;

1 dispatch_queue_t?q?=?dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,?0);
  • 主隊(duì)列:每一個(gè)應(yīng)用程序?qū)?yīng)唯一主隊(duì)列,直接GET即可;在多線程開發(fā)中,使用主隊(duì)列更新UI;

1 dispatch_queue_t?q?=?dispatch_get_main_queue();

更多細(xì)節(jié)見下圖:

內(nèi)存的使用和優(yōu)化的注意事項(xiàng)

  • 重用問題:如UITableViewCells、UICollectionViewCells、UITableViewHeaderFooterViews設(shè)置正確的reuseIdentifier,充分重用;

  • 盡量把views設(shè)置為不透明:當(dāng)opque為NO的時(shí)候,圖層的半透明取決于圖片和其本身合成的圖層為結(jié)果,可提高性能;

  • 不要使用太復(fù)雜的XIB/Storyboard:載入時(shí)就會(huì)將XIB/storyboard需要的所有資源,包括圖片全部載入內(nèi)存,即使未來很久才會(huì)使用。那些相比純代碼寫的延遲加載,性能及內(nèi)存就差了很多;

  • 選擇正確的數(shù)據(jù)結(jié)構(gòu):學(xué)會(huì)選擇對業(yè)務(wù)場景最合適的數(shù)組結(jié)構(gòu)是寫出高效代碼的基礎(chǔ)。比如,數(shù)組: 有序的一組值。使用索引來查詢很快,使用值查詢很慢,插入/刪除很慢。字典: 存儲(chǔ)鍵值對,用鍵來查找比較快。集合: 無序的一組值,用值來查找很快,插入/刪除很快。

  • gzip/zip壓縮:當(dāng)從服務(wù)端下載相關(guān)附件時(shí),可以通過gzip/zip壓縮后再下載,使得內(nèi)存更小,下載速度也更快。

  • 延遲加載:對于不應(yīng)該使用的數(shù)據(jù),使用延遲加載方式。對于不需要馬上顯示的視圖,使用延遲加載方式。比如,網(wǎng)絡(luò)請求失敗時(shí)顯示的提示界面,可能一直都不會(huì)使用到,因此應(yīng)該使用延遲加載。

  • 數(shù)據(jù)緩存:對于cell的行高要緩存起來,使得reload數(shù)據(jù)時(shí),效率也極高。而對于那些網(wǎng)絡(luò)數(shù)據(jù),不需要每次都請求的,應(yīng)該緩存起來,可以寫入數(shù)據(jù)庫,也可以通過plist文件存儲(chǔ)。

  • 處理內(nèi)存警告:一般在基類統(tǒng)一處理內(nèi)存警告,將相關(guān)不用資源立即釋放掉

  • 重用大開銷對象:一些objects的初始化很慢,比如NSDateFormatter和NSCalendar,但又不可避免地需要使用它們。通常是作為屬性存儲(chǔ)起來,防止反復(fù)創(chuàng)建。

  • 避免反復(fù)處理數(shù)據(jù):許多應(yīng)用需要從服務(wù)器加載功能所需的常為JSON或者XML格式的數(shù)據(jù)。在服務(wù)器端和客戶端使用相同的數(shù)據(jù)結(jié)構(gòu)很重要;

  • 使用Autorelease Pool:在某些循環(huán)創(chuàng)建臨時(shí)變量處理數(shù)據(jù)時(shí),自動(dòng)釋放池以保證能及時(shí)釋放內(nèi)存;

  • 正確選擇圖片加載方式:詳情閱讀細(xì)讀UIImage加載方式

UIViewController的完整生命周期

1 2 3 4 5 6 7 8 -[ViewController?initWithNibName:bundle:]; -[ViewController?init]; -[ViewController?loadView]; -[ViewController?viewDidLoad]; -[ViewController?viewWillDisappear:]; -[ViewController?viewWillAppear:]; -[ViewController?viewDidAppear:]; -[ViewController?viewDidDisappear:];

UIImageView添加圓角

  • 最直接的方法就是使用如下屬性設(shè)置:

1 2 3 imgView.layer.cornerRadius?=?10; //?這一行代碼是很消耗性能的 imgView.clipsToBounds?=?YES;

**這是離屏渲染(off-screen-rendering),消耗性能的**

  • 給UIImage添加生成圓角圖片的擴(kuò)展API:這是on-screen-rendering

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -?(UIImage?*)imageWithCornerRadius:(CGFloat)radius?{ CGRect?rect?=?(CGRect){0.f,?0.f,?self.size}; UIGraphicsBeginImageContextWithOptions(self.size,?NO,?UIScreen.mainScreen.scale); CGContextAddPath(UIGraphicsGetCurrentContext(), ?[UIBezierPath?bezierPathWithRoundedRect:rect?cornerRadius:radius].CGPath); CGContextClip(UIGraphicsGetCurrentContext()); [self?drawInRect:rect]; UIImage?*image?=?UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return?image; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/Ghosgt/p/6009276.html

總結(jié)

以上是生活随笔為你收集整理的iOS面试必看,最全梳理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

高清国产亚洲精品自在久久 | 最新国产麻豆aⅴ精品无码 | 欧美成人免费全部网站 | 久久久久国色av免费观看性色 | 亚洲a无码综合a国产av中文 | 日欧一片内射va在线影院 | 图片区 小说区 区 亚洲五月 | 精品久久久无码中文字幕 | 一本大道伊人av久久综合 | 久久国产精品偷任你爽任你 | 国产无遮挡吃胸膜奶免费看 | 中文字幕人妻无码一区二区三区 | 男人扒开女人内裤强吻桶进去 | 伊人久久婷婷五月综合97色 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产精品国产三级国产专播 | 国产真人无遮挡作爱免费视频 | 啦啦啦www在线观看免费视频 | 国产精品怡红院永久免费 | 国内揄拍国内精品人妻 | 久久国产精品二国产精品 | 国产乱子伦视频在线播放 | 久久久久免费看成人影片 | 中文字幕无线码 | 性开放的女人aaa片 | 亚洲国产精品久久久天堂 | 少妇高潮喷潮久久久影院 | 东京热一精品无码av | 国产又爽又猛又粗的视频a片 | 日本免费一区二区三区最新 | 色婷婷香蕉在线一区二区 | 亚洲欧美色中文字幕在线 | 日本丰满护士爆乳xxxx | 狠狠噜狠狠狠狠丁香五月 | 骚片av蜜桃精品一区 | 亚洲精品国偷拍自产在线麻豆 | 午夜精品一区二区三区在线观看 | 男人扒开女人内裤强吻桶进去 | 国精产品一品二品国精品69xx | 欧美猛少妇色xxxxx | 国产人妻大战黑人第1集 | 无码国产乱人伦偷精品视频 | 兔费看少妇性l交大片免费 | 成人欧美一区二区三区 | 伊人久久大香线蕉av一区二区 | 熟妇人妻无码xxx视频 | 日本精品久久久久中文字幕 | 精品少妇爆乳无码av无码专区 | 免费无码av一区二区 | 国产精品久久久一区二区三区 | 国产精品无码一区二区三区不卡 | 久久久精品人妻久久影视 | 中文字幕无码乱人伦 | 99久久精品日本一区二区免费 | 无码帝国www无码专区色综合 | 国产精品手机免费 | 少妇人妻偷人精品无码视频 | 无码av免费一区二区三区试看 | 蜜桃无码一区二区三区 | 精品国产一区二区三区四区 | 亚洲啪av永久无码精品放毛片 | 国产区女主播在线观看 | 亚洲国产精品无码一区二区三区 | 内射后入在线观看一区 | 国产精品高潮呻吟av久久 | 国产午夜无码精品免费看 | 丰满妇女强制高潮18xxxx | 最新国产乱人伦偷精品免费网站 | 成人无码精品一区二区三区 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲中文字幕乱码av波多ji | 乌克兰少妇xxxx做受 | 青青青爽视频在线观看 | 日产国产精品亚洲系列 | 精品人妻人人做人人爽夜夜爽 | 乱码午夜-极国产极内射 | 性生交大片免费看l | 97资源共享在线视频 | 亚洲精品一区二区三区四区五区 | 少妇性俱乐部纵欲狂欢电影 | 国产精品无码一区二区三区不卡 | 久久99精品国产麻豆 | 亚洲中文字幕久久无码 | 亚洲精品久久久久久一区二区 | 久久久久久a亚洲欧洲av冫 | 欧洲欧美人成视频在线 | 久久精品无码一区二区三区 | 亚洲国产成人a精品不卡在线 | 永久免费观看国产裸体美女 | 蜜桃视频韩日免费播放 | 精品人人妻人人澡人人爽人人 | 噜噜噜亚洲色成人网站 | 亚洲精品一区二区三区在线观看 | 国产特级毛片aaaaaa高潮流水 | 色欲av亚洲一区无码少妇 | 高清国产亚洲精品自在久久 | 久久精品视频在线看15 | 在线观看欧美一区二区三区 | 亚洲国产精品无码一区二区三区 | 日本一区二区三区免费播放 | 六十路熟妇乱子伦 | 在线亚洲高清揄拍自拍一品区 | 久久久中文久久久无码 | 亚洲成在人网站无码天堂 | 成人一在线视频日韩国产 | 色妞www精品免费视频 | 亚洲国产精品无码久久久久高潮 | 伊在人天堂亚洲香蕉精品区 | 精品无码国产一区二区三区av | 蜜臀aⅴ国产精品久久久国产老师 | 国产口爆吞精在线视频 | 欧美自拍另类欧美综合图片区 | 免费中文字幕日韩欧美 | 久久综合给久久狠狠97色 | 思思久久99热只有频精品66 | 精品国精品国产自在久国产87 | 暴力强奷在线播放无码 | 天堂一区人妻无码 | 大色综合色综合网站 | 亚洲自偷自偷在线制服 | 中文字幕久久久久人妻 | 亚洲 另类 在线 欧美 制服 | 色欲综合久久中文字幕网 | 波多野结衣高清一区二区三区 | 国产美女精品一区二区三区 | 成 人 网 站国产免费观看 | 国产av一区二区精品久久凹凸 | 一本久久a久久精品亚洲 | 国产精品久久久久无码av色戒 | 欧美丰满熟妇xxxx性ppx人交 | 久久天天躁夜夜躁狠狠 | 精品aⅴ一区二区三区 | 久久久久亚洲精品中文字幕 | 丝袜人妻一区二区三区 | 美女黄网站人色视频免费国产 | 少妇一晚三次一区二区三区 | 日韩人妻少妇一区二区三区 | 久久久久久久人妻无码中文字幕爆 | 欧美人与禽zoz0性伦交 | 亚洲欧洲日本综合aⅴ在线 | 在线播放免费人成毛片乱码 | 麻豆人妻少妇精品无码专区 | 一二三四社区在线中文视频 | 亚洲综合伊人久久大杳蕉 | 少妇性俱乐部纵欲狂欢电影 | 中文字幕无线码 | 亚洲自偷自偷在线制服 | 久久久精品欧美一区二区免费 | 在线 国产 欧美 亚洲 天堂 | 久久视频在线观看精品 | 欧美日本免费一区二区三区 | a在线亚洲男人的天堂 | 成人毛片一区二区 | 久久99精品国产.久久久久 | 中文字幕av无码一区二区三区电影 | 久久精品女人天堂av免费观看 | 中文字幕无码人妻少妇免费 | 欧美高清在线精品一区 | 国产乱人无码伦av在线a | 娇妻被黑人粗大高潮白浆 | 精品久久久久久亚洲精品 | 内射巨臀欧美在线视频 | 久久99久久99精品中文字幕 | 影音先锋中文字幕无码 | 97精品国产97久久久久久免费 | 性开放的女人aaa片 | 欧美激情综合亚洲一二区 | 免费无码的av片在线观看 | 国内精品人妻无码久久久影院蜜桃 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产成人精品必看 | 欧美激情综合亚洲一二区 | 少女韩国电视剧在线观看完整 | 精品无码av一区二区三区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 成人无码影片精品久久久 | 无码播放一区二区三区 | 麻豆蜜桃av蜜臀av色欲av | 桃花色综合影院 | 国产黄在线观看免费观看不卡 | 午夜不卡av免费 一本久久a久久精品vr综合 | 又紧又大又爽精品一区二区 | 宝宝好涨水快流出来免费视频 | 色噜噜亚洲男人的天堂 | 国产亲子乱弄免费视频 | 内射白嫩少妇超碰 | 小sao货水好多真紧h无码视频 | 日本成熟视频免费视频 | 日韩av无码一区二区三区不卡 | 国产精品二区一区二区aⅴ污介绍 | 中文亚洲成a人片在线观看 | 精品人人妻人人澡人人爽人人 | 国内少妇偷人精品视频 | 亚洲精品美女久久久久久久 | 国产午夜无码视频在线观看 | 丰满人妻翻云覆雨呻吟视频 | 中文字幕乱码亚洲无线三区 | 国产sm调教视频在线观看 | 亚洲欧美国产精品久久 | 娇妻被黑人粗大高潮白浆 | 在线播放亚洲第一字幕 | 无码人妻av免费一区二区三区 | 国产人妻精品一区二区三区不卡 | 中文字幕中文有码在线 | 蜜臀aⅴ国产精品久久久国产老师 | 国产片av国语在线观看 | 沈阳熟女露脸对白视频 | 综合激情五月综合激情五月激情1 | 欧美高清在线精品一区 | 精品国产福利一区二区 | 色婷婷香蕉在线一区二区 | 国产高清不卡无码视频 | 在线观看国产一区二区三区 | 欧美丰满熟妇xxxx性ppx人交 | 国产在线精品一区二区高清不卡 | 波多野结衣一区二区三区av免费 | 精品国产av色一区二区深夜久久 | 亚洲色欲色欲欲www在线 | 亚洲伊人久久精品影院 | 99麻豆久久久国产精品免费 | 天天爽夜夜爽夜夜爽 | 狂野欧美激情性xxxx | 日本爽爽爽爽爽爽在线观看免 | 成人综合网亚洲伊人 | 在线观看欧美一区二区三区 | 强伦人妻一区二区三区视频18 | 99麻豆久久久国产精品免费 | 女人色极品影院 | 奇米影视7777久久精品 | 国产成人精品优优av | 人妻aⅴ无码一区二区三区 | 国产精品国产三级国产专播 | 波多野结衣一区二区三区av免费 | 国产精品久久久 | 九九久久精品国产免费看小说 | 大地资源网第二页免费观看 | 黑人粗大猛烈进出高潮视频 | 国产精品久久久久久久影院 | 久久精品国产99精品亚洲 | 久久精品人妻少妇一区二区三区 | 精品国产一区二区三区四区在线看 | 无码精品人妻一区二区三区av | 亚洲国产一区二区三区在线观看 | 亚洲国产av精品一区二区蜜芽 | 清纯唯美经典一区二区 | av小次郎收藏 | 国产精品久久久午夜夜伦鲁鲁 | 99麻豆久久久国产精品免费 | 动漫av一区二区在线观看 | 性史性农村dvd毛片 | 99久久婷婷国产综合精品青草免费 | 国产凸凹视频一区二区 | 国产亚洲人成在线播放 | 国产真实夫妇视频 | 成人aaa片一区国产精品 | 亚洲中文字幕无码中字 | 久久99精品国产.久久久久 | 成人影院yy111111在线观看 | 日本一区二区三区免费播放 | 妺妺窝人体色www在线小说 | 亚洲成色www久久网站 | 好屌草这里只有精品 | 俄罗斯老熟妇色xxxx | 伊人久久大香线蕉午夜 | 国产亚洲精品久久久久久国模美 | 国产一区二区三区影院 | 亚洲gv猛男gv无码男同 | v一区无码内射国产 | 日日麻批免费40分钟无码 | 国产一区二区三区精品视频 | 伊人色综合久久天天小片 | 中文字幕乱码亚洲无线三区 | 麻豆国产丝袜白领秘书在线观看 | 波多野42部无码喷潮在线 | √天堂中文官网8在线 | 好屌草这里只有精品 | 国产午夜无码精品免费看 | 少妇人妻av毛片在线看 | 一本久道久久综合婷婷五月 | 中文字幕av伊人av无码av | 中文字幕乱码中文乱码51精品 | 国产在线精品一区二区高清不卡 | 99久久无码一区人妻 | 无遮挡国产高潮视频免费观看 | 欧美阿v高清资源不卡在线播放 | 香港三级日本三级妇三级 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产农村乱对白刺激视频 | 久久精品人妻少妇一区二区三区 | 在线精品亚洲一区二区 | 国产真实夫妇视频 | 日日摸夜夜摸狠狠摸婷婷 | 图片区 小说区 区 亚洲五月 | 一区二区三区乱码在线 | 欧洲 | 国产精品久久久久影院嫩草 | 青青草原综合久久大伊人精品 | 久久精品国产大片免费观看 | 国产激情无码一区二区app | 亚洲人成影院在线无码按摩店 | 亚洲日韩中文字幕在线播放 | 国产成人久久精品流白浆 | 久久精品中文字幕大胸 | 日欧一片内射va在线影院 | 欧美日韩在线亚洲综合国产人 | 国产av一区二区精品久久凹凸 | 蜜桃视频插满18在线观看 | 丰腴饱满的极品熟妇 | 妺妺窝人体色www在线小说 | 漂亮人妻洗澡被公强 日日躁 | 97夜夜澡人人爽人人喊中国片 | 撕开奶罩揉吮奶头视频 | 亚洲精品无码人妻无码 | 日本丰满熟妇videos | 高清无码午夜福利视频 | 久久久婷婷五月亚洲97号色 | 欧洲欧美人成视频在线 | 欧美亚洲日韩国产人成在线播放 | 亚洲日本一区二区三区在线 | www一区二区www免费 | 18精品久久久无码午夜福利 | 99久久精品日本一区二区免费 | 欧美人与物videos另类 | 欧美日韩一区二区免费视频 | 人妻aⅴ无码一区二区三区 | 97se亚洲精品一区 | 噜噜噜亚洲色成人网站 | 午夜精品一区二区三区在线观看 | 久久综合狠狠综合久久综合88 | 又大又硬又黄的免费视频 | 日本在线高清不卡免费播放 | 日韩人妻系列无码专区 | 亚洲爆乳无码专区 | 国产乱人无码伦av在线a | 高潮毛片无遮挡高清免费视频 | 亚洲熟妇色xxxxx欧美老妇y | 东京热一精品无码av | 伊人色综合久久天天小片 | 大肉大捧一进一出视频出来呀 | 亚洲成av人片天堂网无码】 | 国内精品人妻无码久久久影院 | 亚洲综合色区中文字幕 | 亚洲国产精品久久久久久 | 岛国片人妻三上悠亚 | 国产精品亚洲lv粉色 | 亚洲色在线无码国产精品不卡 | 国产精品高潮呻吟av久久 | 无套内谢的新婚少妇国语播放 | 久久精品丝袜高跟鞋 | 成人免费视频视频在线观看 免费 | 久久久久se色偷偷亚洲精品av | 综合人妻久久一区二区精品 | 国产人妻精品一区二区三区 | 乱人伦人妻中文字幕无码 | 免费视频欧美无人区码 | 国产成人人人97超碰超爽8 | 熟女少妇人妻中文字幕 | 色婷婷av一区二区三区之红樱桃 | 精品偷拍一区二区三区在线看 | 99久久婷婷国产综合精品青草免费 | 噜噜噜亚洲色成人网站 | 日本乱人伦片中文三区 | 人人爽人人澡人人高潮 | 无码国内精品人妻少妇 | 中文字幕无线码免费人妻 | 中文字幕人成乱码熟女app | 久久久久成人精品免费播放动漫 | 女人被男人爽到呻吟的视频 | 日韩欧美中文字幕公布 | 野外少妇愉情中文字幕 | 高清国产亚洲精品自在久久 | 精品乱子伦一区二区三区 | 亚洲 a v无 码免 费 成 人 a v | 欧美激情内射喷水高潮 | 麻豆国产人妻欲求不满谁演的 | 巨爆乳无码视频在线观看 | 成人av无码一区二区三区 | 中文字幕乱码人妻二区三区 | 99久久婷婷国产综合精品青草免费 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 中文字幕乱码人妻无码久久 | 婷婷丁香六月激情综合啪 | 亚洲欧美日韩国产精品一区二区 | 婷婷丁香六月激情综合啪 | 国产精品国产三级国产专播 | 亚洲精品国产第一综合99久久 | 日韩视频 中文字幕 视频一区 | 久久国产精品精品国产色婷婷 | 国产网红无码精品视频 | 在教室伦流澡到高潮hnp视频 | 东京一本一道一二三区 | 国产手机在线αⅴ片无码观看 | 亚洲成av人片天堂网无码】 | 国产成人精品优优av | 婷婷色婷婷开心五月四房播播 | 给我免费的视频在线观看 | 日韩av无码一区二区三区不卡 | 内射老妇bbwx0c0ck | 又湿又紧又大又爽a视频国产 | 网友自拍区视频精品 | 亚洲国产精品美女久久久久 | 少妇的肉体aa片免费 | 久久久久亚洲精品中文字幕 | 精品国产麻豆免费人成网站 | 一个人免费观看的www视频 | 亚洲成a人片在线观看无码 | 国产sm调教视频在线观看 | 麻豆国产97在线 | 欧洲 | 国产在线精品一区二区高清不卡 | 久久99精品久久久久久 | 亚洲 另类 在线 欧美 制服 | 国产成人午夜福利在线播放 | 亚洲一区av无码专区在线观看 | 丁香花在线影院观看在线播放 | 日本饥渴人妻欲求不满 | 亚洲一区二区三区在线观看网站 | 中文字幕人妻无码一夲道 | 国产成人无码a区在线观看视频app | 久久99热只有频精品8 | 天海翼激烈高潮到腰振不止 | 日本大乳高潮视频在线观看 | 色婷婷欧美在线播放内射 | 高清不卡一区二区三区 | 久久精品人人做人人综合 | 蜜臀av无码人妻精品 | 中文字幕人成乱码熟女app | 国产xxx69麻豆国语对白 | 色一情一乱一伦一区二区三欧美 | 成人精品视频一区二区 | 精品日本一区二区三区在线观看 | 国产成人av免费观看 | 国产一区二区三区影院 | 国产黑色丝袜在线播放 | 天天拍夜夜添久久精品大 | 乌克兰少妇xxxx做受 | 亚洲中文字幕av在天堂 | 丰满岳乱妇在线观看中字无码 | 亚洲成av人在线观看网址 | 国产黄在线观看免费观看不卡 | 中文字幕人成乱码熟女app | 亚洲综合无码久久精品综合 | 国产成人无码a区在线观看视频app | 激情国产av做激情国产爱 | 精品成在人线av无码免费看 | 极品尤物被啪到呻吟喷水 | 丁香花在线影院观看在线播放 | 性色av无码免费一区二区三区 | 丰满人妻精品国产99aⅴ | 国产激情综合五月久久 | 最新国产乱人伦偷精品免费网站 | 午夜不卡av免费 一本久久a久久精品vr综合 | 久久久精品欧美一区二区免费 | 日本va欧美va欧美va精品 | 久久久久久国产精品无码下载 | 东京一本一道一二三区 | 特大黑人娇小亚洲女 | 乱码av麻豆丝袜熟女系列 | 日韩少妇内射免费播放 | 国产精品国产自线拍免费软件 | 久久久久国色av免费观看性色 | 色五月丁香五月综合五月 | 激情五月综合色婷婷一区二区 | 亚洲一区二区三区在线观看网站 | 国产av久久久久精东av | 精品无码国产一区二区三区av | 正在播放东北夫妻内射 | 亚洲日韩中文字幕在线播放 | 一本色道久久综合亚洲精品不卡 | 成人一区二区免费视频 | 国産精品久久久久久久 | 国产精品99爱免费视频 | 国产精品久久久久9999小说 | 成年女人永久免费看片 | 婷婷丁香五月天综合东京热 | 美女扒开屁股让男人桶 | 亚洲成熟女人毛毛耸耸多 | 国产乱人伦偷精品视频 | 天天做天天爱天天爽综合网 | 亚洲中文字幕乱码av波多ji | 波多野结衣 黑人 | 国产熟女一区二区三区四区五区 | 日韩av无码中文无码电影 | 久久精品女人天堂av免费观看 | 漂亮人妻洗澡被公强 日日躁 | 精品偷拍一区二区三区在线看 | av香港经典三级级 在线 | 亚洲中文字幕无码中文字在线 | 国产精华av午夜在线观看 | 小sao货水好多真紧h无码视频 | 无套内谢的新婚少妇国语播放 | 亚洲午夜久久久影院 | 中文字幕乱码亚洲无线三区 | 国产精品第一国产精品 | 国产香蕉97碰碰久久人人 | 亚洲人成影院在线无码按摩店 | 一二三四在线观看免费视频 | 黑森林福利视频导航 | 日韩人妻无码中文字幕视频 | 青春草在线视频免费观看 | 丝袜人妻一区二区三区 | 精品久久久久久人妻无码中文字幕 | 国产麻豆精品精东影业av网站 | 亚洲a无码综合a国产av中文 | 思思久久99热只有频精品66 | 粉嫩少妇内射浓精videos | 国产成人无码区免费内射一片色欲 | 亚洲日韩av一区二区三区四区 | 18精品久久久无码午夜福利 | 国产在热线精品视频 | 国产亚洲视频中文字幕97精品 | 久久久久久国产精品无码下载 | 少妇无码吹潮 | 奇米影视888欧美在线观看 | 日本护士xxxxhd少妇 | 老太婆性杂交欧美肥老太 | 内射巨臀欧美在线视频 | 精品国产av色一区二区深夜久久 | 中文字幕av无码一区二区三区电影 | 粉嫩少妇内射浓精videos | 亚洲精品久久久久avwww潮水 | 无码人妻精品一区二区三区不卡 | 久久久久av无码免费网 | 国内精品人妻无码久久久影院蜜桃 | 亚洲精品久久久久中文第一幕 | 十八禁视频网站在线观看 | 中文字幕无码热在线视频 | 人人妻人人澡人人爽欧美精品 | 久久成人a毛片免费观看网站 | 国产国语老龄妇女a片 | 高潮毛片无遮挡高清免费视频 | 亚洲欧美精品aaaaaa片 | 国产亚洲精品久久久久久国模美 | 成人亚洲精品久久久久软件 | 精品久久久无码人妻字幂 | 久久99热只有频精品8 | 成人免费视频在线观看 | 双乳奶水饱满少妇呻吟 | 国产精品久免费的黄网站 | 四虎国产精品免费久久 | 国产香蕉尹人综合在线观看 | 亚洲va欧美va天堂v国产综合 | 永久免费精品精品永久-夜色 | 亚洲精品午夜无码电影网 | 在线欧美精品一区二区三区 | 久久无码人妻影院 | 亚洲小说图区综合在线 | 老子影院午夜精品无码 | 色情久久久av熟女人妻网站 | 中文字幕乱码人妻无码久久 | 中文字幕人妻无码一区二区三区 | 久久无码中文字幕免费影院蜜桃 | 性欧美疯狂xxxxbbbb | 亚洲成a人一区二区三区 | 亚洲s码欧洲m码国产av | 乱码av麻豆丝袜熟女系列 | 成人无码精品一区二区三区 | 国产精品第一国产精品 | 无套内谢的新婚少妇国语播放 | 欧美日韩人成综合在线播放 | 在线观看欧美一区二区三区 | 亚洲 a v无 码免 费 成 人 a v | 国产av剧情md精品麻豆 | 人人妻人人澡人人爽人人精品 | 欧美 亚洲 国产 另类 | 丁香啪啪综合成人亚洲 | 久久99精品国产麻豆 | 欧美 日韩 人妻 高清 中文 | 国产成人无码a区在线观看视频app | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲熟熟妇xxxx | 国产在线无码精品电影网 | 曰韩少妇内射免费播放 | 国产精品无码成人午夜电影 | av无码电影一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 精品成在人线av无码免费看 | 蜜桃臀无码内射一区二区三区 | 丰满诱人的人妻3 | 强奷人妻日本中文字幕 | 亚洲欧美中文字幕5发布 | 2019午夜福利不卡片在线 | 国产无遮挡又黄又爽又色 | 精品久久8x国产免费观看 | 四虎影视成人永久免费观看视频 | 色五月五月丁香亚洲综合网 | 男女下面进入的视频免费午夜 | 天堂亚洲2017在线观看 | 亚洲综合无码久久精品综合 | 人妻天天爽夜夜爽一区二区 | 野狼第一精品社区 | 98国产精品综合一区二区三区 | 亚拍精品一区二区三区探花 | 国产成人无码av在线影院 | 日本精品久久久久中文字幕 | 国产精品igao视频网 | 亚洲小说春色综合另类 | 国产在热线精品视频 | 人妻少妇精品视频专区 | 欧美人妻一区二区三区 | 国产在线一区二区三区四区五区 | 中文字幕乱码人妻二区三区 | 久久久精品人妻久久影视 | 老熟女重囗味hdxx69 | 亚洲中文字幕av在天堂 | 亚洲色大成网站www国产 | 最新版天堂资源中文官网 | 亚洲欧洲无卡二区视頻 | 中文精品无码中文字幕无码专区 | 午夜精品一区二区三区在线观看 | 丁香花在线影院观看在线播放 | 欧美激情一区二区三区成人 | 性生交大片免费看女人按摩摩 | 国产成人一区二区三区在线观看 | 亚洲精品www久久久 | 欧美精品无码一区二区三区 | 在线看片无码永久免费视频 | 亚洲欧美日韩成人高清在线一区 | 乱中年女人伦av三区 | 色婷婷欧美在线播放内射 | av人摸人人人澡人人超碰下载 | 激情人妻另类人妻伦 | 亚洲日韩av一区二区三区中文 | 丰满诱人的人妻3 | 国产精品福利视频导航 | 天干天干啦夜天干天2017 | www国产精品内射老师 | 成人免费视频一区二区 | 国产av一区二区精品久久凹凸 | 国产精品久久精品三级 | 风流少妇按摩来高潮 | 亚洲熟妇色xxxxx欧美老妇 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产av无码专区亚洲awww | 人人妻人人澡人人爽欧美一区 | 日本免费一区二区三区最新 | 成人精品视频一区二区三区尤物 | 中文亚洲成a人片在线观看 | 澳门永久av免费网站 | 亚洲人成影院在线观看 | 久久国产精品偷任你爽任你 | 久久综合狠狠综合久久综合88 | 成人亚洲精品久久久久软件 | 亚拍精品一区二区三区探花 | 欧美阿v高清资源不卡在线播放 | aⅴ在线视频男人的天堂 | 亚洲自偷精品视频自拍 | 大屁股大乳丰满人妻 | 色婷婷综合激情综在线播放 | 国产又爽又猛又粗的视频a片 | 成人精品一区二区三区中文字幕 | 久久久久久久久蜜桃 | 日欧一片内射va在线影院 | 香港三级日本三级妇三级 | 国产精品va在线观看无码 | 久久成人a毛片免费观看网站 | 成熟妇人a片免费看网站 | 国产成人无码av片在线观看不卡 | 国产精品人人爽人人做我的可爱 | 国产sm调教视频在线观看 | 国产超碰人人爽人人做人人添 | 好屌草这里只有精品 | 丰满少妇熟乱xxxxx视频 | 精品亚洲成av人在线观看 | 粉嫩少妇内射浓精videos | 伊人久久婷婷五月综合97色 | 成人精品视频一区二区三区尤物 | 国产舌乚八伦偷品w中 | 国产成人人人97超碰超爽8 | 国产亚洲精品久久久久久久 | 亚洲日本va午夜在线电影 | 日本va欧美va欧美va精品 | 亚洲va欧美va天堂v国产综合 | 成在人线av无码免观看麻豆 | 亚洲日韩一区二区三区 | 一本无码人妻在中文字幕免费 | 精品人人妻人人澡人人爽人人 | 精品熟女少妇av免费观看 | 捆绑白丝粉色jk震动捧喷白浆 | a片免费视频在线观看 | 无套内谢的新婚少妇国语播放 | 草草网站影院白丝内射 | 国产精品igao视频网 | 亚洲精品成a人在线观看 | 久久国产自偷自偷免费一区调 | 麻豆成人精品国产免费 | 国产午夜福利100集发布 | 精品无码一区二区三区爱欲 | 成 人 网 站国产免费观看 | 色欲人妻aaaaaaa无码 | 欧美人妻一区二区三区 | 国产成人午夜福利在线播放 | 俺去俺来也在线www色官网 | 亚洲va中文字幕无码久久不卡 | 国产特级毛片aaaaaaa高清 | 久久视频在线观看精品 | 麻花豆传媒剧国产免费mv在线 | 免费乱码人妻系列无码专区 | 中文亚洲成a人片在线观看 | 国内少妇偷人精品视频免费 | 18禁止看的免费污网站 | 日韩无码专区 | 激情国产av做激情国产爱 | 乱人伦人妻中文字幕无码久久网 | 亚洲国产欧美在线成人 | 国产极品美女高潮无套在线观看 | 中文无码伦av中文字幕 | 性欧美牲交xxxxx视频 | 日本熟妇乱子伦xxxx | 暴力强奷在线播放无码 | 最新国产乱人伦偷精品免费网站 | 久久婷婷五月综合色国产香蕉 | 色五月丁香五月综合五月 | 一本久道久久综合婷婷五月 | 性啪啪chinese东北女人 | 国产激情艳情在线看视频 | 亚洲gv猛男gv无码男同 | 国产精品美女久久久 | 四虎国产精品免费久久 | 欧洲熟妇色 欧美 | 18无码粉嫩小泬无套在线观看 | 亚洲欧美日韩综合久久久 | 久久久久亚洲精品中文字幕 | 国精品人妻无码一区二区三区蜜柚 | 亚洲精品中文字幕 | 亚洲精品www久久久 | √天堂资源地址中文在线 | 久久99精品国产麻豆蜜芽 | 午夜免费福利小电影 | 欧美兽交xxxx×视频 | 亚洲 高清 成人 动漫 | 中文字幕无码av激情不卡 | 亚洲精品国产a久久久久久 | 九月婷婷人人澡人人添人人爽 | 六十路熟妇乱子伦 | 亚洲va欧美va天堂v国产综合 | 国产亚洲欧美日韩亚洲中文色 | 亚洲成a人片在线观看无码3d | 麻豆果冻传媒2021精品传媒一区下载 | 精品亚洲韩国一区二区三区 | 真人与拘做受免费视频一 | 性欧美牲交xxxxx视频 | 鲁一鲁av2019在线 | 亚洲精品中文字幕乱码 | 高清不卡一区二区三区 | 国产精品毛片一区二区 | 成人试看120秒体验区 | 国产av一区二区精品久久凹凸 | 鲁鲁鲁爽爽爽在线视频观看 | 国产网红无码精品视频 | 蜜臀av无码人妻精品 | 97人妻精品一区二区三区 | 久久无码人妻影院 | 丰满岳乱妇在线观看中字无码 | 欧美亚洲日韩国产人成在线播放 | 国产手机在线αⅴ片无码观看 | 2019nv天堂香蕉在线观看 | 日本一卡2卡3卡四卡精品网站 | 国产成人综合色在线观看网站 | 国产艳妇av在线观看果冻传媒 | 国产精品无码永久免费888 | 欧美人妻一区二区三区 | 99国产精品白浆在线观看免费 | 国产精品二区一区二区aⅴ污介绍 | 国产欧美熟妇另类久久久 | 色狠狠av一区二区三区 | 中文字幕无码av激情不卡 | 999久久久国产精品消防器材 | 少妇邻居内射在线 | 黑人粗大猛烈进出高潮视频 | 双乳奶水饱满少妇呻吟 | 国产免费无码一区二区视频 | 亚洲码国产精品高潮在线 | 久久人妻内射无码一区三区 | 在线播放无码字幕亚洲 | 精品国精品国产自在久国产87 | 粉嫩少妇内射浓精videos | 在线播放无码字幕亚洲 | 亚洲日韩精品欧美一区二区 | 午夜精品一区二区三区在线观看 | 午夜熟女插插xx免费视频 | 国产精品自产拍在线观看 | 午夜免费福利小电影 | 日韩av无码中文无码电影 | 东京热无码av男人的天堂 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 永久免费精品精品永久-夜色 | 国产精品久免费的黄网站 | 蜜桃臀无码内射一区二区三区 | 精品偷拍一区二区三区在线看 | 欧美35页视频在线观看 | 给我免费的视频在线观看 | 中文字幕人成乱码熟女app | 76少妇精品导航 | 国产亚洲精品久久久久久 | 久久天天躁狠狠躁夜夜免费观看 | 伊人久久大香线蕉午夜 | 无码国模国产在线观看 | 精品国产福利一区二区 | 精品少妇爆乳无码av无码专区 | 久久国语露脸国产精品电影 | 亚洲 a v无 码免 费 成 人 a v | 帮老师解开蕾丝奶罩吸乳网站 | 国产成人亚洲综合无码 | 精品人妻人人做人人爽 | 在线精品亚洲一区二区 | 国产成人综合在线女婷五月99播放 | 久久国产精品精品国产色婷婷 | 欧美野外疯狂做受xxxx高潮 | 日本饥渴人妻欲求不满 | 精品国偷自产在线视频 | 国产人成高清在线视频99最全资源 | 无码av岛国片在线播放 | 日本va欧美va欧美va精品 | 欧美 日韩 人妻 高清 中文 | 熟女俱乐部五十路六十路av | 精品水蜜桃久久久久久久 | 亚洲国产精品一区二区美利坚 | 国产超碰人人爽人人做人人添 | 97夜夜澡人人爽人人喊中国片 | av人摸人人人澡人人超碰下载 | 欧美日韩一区二区综合 | 人妻尝试又大又粗久久 | 亚洲 高清 成人 动漫 | 亚洲色无码一区二区三区 | 欧美国产日韩久久mv | 精品国产麻豆免费人成网站 | 久久久久成人精品免费播放动漫 | 久久久久成人片免费观看蜜芽 | 日韩视频 中文字幕 视频一区 | 一本色道久久综合狠狠躁 | 在线观看欧美一区二区三区 | 在教室伦流澡到高潮hnp视频 | 在线观看国产午夜福利片 | 久久精品国产亚洲精品 | 亚洲综合无码一区二区三区 | 国产人妻精品一区二区三区不卡 | 国产人妻精品一区二区三区不卡 | 真人与拘做受免费视频一 | 亚洲精品一区国产 | 正在播放东北夫妻内射 | 99精品国产综合久久久久五月天 | 自拍偷自拍亚洲精品10p | 最新国产麻豆aⅴ精品无码 | 亚洲精品一区二区三区婷婷月 | 欧洲vodafone精品性 | 人人妻人人澡人人爽精品欧美 | 色综合视频一区二区三区 | 欧美xxxx黑人又粗又长 | 无码国内精品人妻少妇 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 精品国精品国产自在久国产87 | 99久久99久久免费精品蜜桃 | 亚洲精品久久久久久一区二区 | 国产精品永久免费视频 | 中文字幕av无码一区二区三区电影 | aa片在线观看视频在线播放 | 亚洲国产精品美女久久久久 | 5858s亚洲色大成网站www | 亚洲欧美日韩国产精品一区二区 | 久久久精品国产sm最大网站 | 国产乱人无码伦av在线a | 亚洲中文字幕无码中字 | 国产午夜亚洲精品不卡下载 | 亚洲精品一区二区三区在线观看 | 97夜夜澡人人爽人人喊中国片 | 窝窝午夜理论片影院 | 未满小14洗澡无码视频网站 | 亚洲午夜久久久影院 | 亚洲国产av精品一区二区蜜芽 | 日本xxxx色视频在线观看免费 | 国产激情无码一区二区app | 国产九九九九九九九a片 | 国产精品无码永久免费888 | 久久久婷婷五月亚洲97号色 | 亚洲毛片av日韩av无码 | 成人亚洲精品久久久久软件 | 久久aⅴ免费观看 | 亚洲毛片av日韩av无码 | 四虎国产精品免费久久 | 伦伦影院午夜理论片 | 正在播放东北夫妻内射 | 国产av一区二区三区最新精品 | 国产在线一区二区三区四区五区 | 国产 精品 自在自线 | 亚洲国产av精品一区二区蜜芽 | 中文字幕人妻丝袜二区 | 成人无码精品1区2区3区免费看 | 精品亚洲韩国一区二区三区 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲の无码国产の无码影院 | 暴力强奷在线播放无码 | 国产精品沙发午睡系列 | 久久午夜无码鲁丝片 | 欧美日本日韩 | 精品国产一区av天美传媒 | 撕开奶罩揉吮奶头视频 | 又粗又大又硬毛片免费看 | 国产偷国产偷精品高清尤物 | 乱人伦中文视频在线观看 | 亚洲精品一区二区三区在线 | 无码纯肉视频在线观看 | 中文字幕+乱码+中文字幕一区 | 人人妻人人澡人人爽欧美精品 | 又大又紧又粉嫩18p少妇 | 亚洲自偷自偷在线制服 | 日日鲁鲁鲁夜夜爽爽狠狠 | 日本丰满护士爆乳xxxx | 欧美性猛交内射兽交老熟妇 | 久久久久99精品国产片 | 国产美女精品一区二区三区 | 性生交大片免费看女人按摩摩 | 人人妻人人澡人人爽欧美精品 | 免费人成网站视频在线观看 | 国产情侣作爱视频免费观看 | 99精品无人区乱码1区2区3区 | 在线精品亚洲一区二区 | 人妻有码中文字幕在线 | 中文字幕乱码人妻无码久久 | 国产农村乱对白刺激视频 | 国产农村乱对白刺激视频 | 国产色视频一区二区三区 | 国产成人av免费观看 | 亚洲の无码国产の无码步美 | 欧美国产日产一区二区 | 亚洲综合无码久久精品综合 | 国产激情无码一区二区app | 任你躁国产自任一区二区三区 | 给我免费的视频在线观看 | 亚洲中文字幕av在天堂 | 精品国产乱码久久久久乱码 | 精品人人妻人人澡人人爽人人 | 伊在人天堂亚洲香蕉精品区 | 77777熟女视频在线观看 а天堂中文在线官网 | 成人精品视频一区二区 | 亚洲欧洲日本综合aⅴ在线 | 丰满少妇人妻久久久久久 | 成人无码视频在线观看网站 | 亚洲成熟女人毛毛耸耸多 | 亚洲午夜福利在线观看 | 无码人妻久久一区二区三区不卡 | 免费观看的无遮挡av | 性欧美牲交xxxxx视频 | 久久久国产精品无码免费专区 | 美女黄网站人色视频免费国产 | 国产真实夫妇视频 | 日韩av激情在线观看 | 欧美性黑人极品hd | 久久天天躁狠狠躁夜夜免费观看 | 亚洲成av人影院在线观看 | 高潮喷水的毛片 | 国产一精品一av一免费 | 无码精品国产va在线观看dvd | 精品偷拍一区二区三区在线看 | 男女爱爱好爽视频免费看 | 小泽玛莉亚一区二区视频在线 | 好屌草这里只有精品 | 精品久久久久久人妻无码中文字幕 | 久久久久久a亚洲欧洲av冫 | 67194成是人免费无码 | 丰满少妇熟乱xxxxx视频 | 国产亚洲精品精品国产亚洲综合 | 女人被男人躁得好爽免费视频 | 日韩亚洲欧美精品综合 | 久久99精品国产麻豆蜜芽 | 日本精品人妻无码免费大全 | 久久天天躁夜夜躁狠狠 | 久久国产精品二国产精品 | 久久zyz资源站无码中文动漫 | 又湿又紧又大又爽a视频国产 | 奇米影视888欧美在线观看 | 国产精华av午夜在线观看 | 高潮毛片无遮挡高清免费 | 亚洲色欲久久久综合网东京热 | 人妻少妇被猛烈进入中文字幕 | 日本一卡二卡不卡视频查询 | 精品国产一区二区三区四区 | 国内综合精品午夜久久资源 | 中文字幕人妻无码一区二区三区 | 一区二区三区高清视频一 | 欧美野外疯狂做受xxxx高潮 | 人妻插b视频一区二区三区 | 久久国语露脸国产精品电影 | 高潮毛片无遮挡高清免费视频 | 久久精品中文闷骚内射 | 国产精品二区一区二区aⅴ污介绍 | 国内精品久久久久久中文字幕 | 亚洲精品一区三区三区在线观看 | 亚洲国产精品一区二区美利坚 | 熟妇人妻中文av无码 | 久久无码人妻影院 | 久久亚洲日韩精品一区二区三区 | 日韩精品无码一本二本三本色 | 性啪啪chinese东北女人 | 欧美精品免费观看二区 | 日产精品99久久久久久 | 荫蒂添的好舒服视频囗交 | 国产成人无码专区 | 丁香啪啪综合成人亚洲 | 欧美国产日韩亚洲中文 | 国产在线aaa片一区二区99 | 国产精品嫩草久久久久 | 蜜桃av抽搐高潮一区二区 | 亚洲欧美国产精品久久 | 在线a亚洲视频播放在线观看 | 日韩精品无码一本二本三本色 | 未满成年国产在线观看 | 日本大乳高潮视频在线观看 | 国产做国产爱免费视频 | 99精品国产综合久久久久五月天 | 亚洲成av人片天堂网无码】 | 小泽玛莉亚一区二区视频在线 | 狠狠色欧美亚洲狠狠色www | 精品久久久久久亚洲精品 | 婷婷六月久久综合丁香 | 国产片av国语在线观看 | 欧美性生交活xxxxxdddd | 精品一二三区久久aaa片 | 思思久久99热只有频精品66 | 人人妻人人澡人人爽欧美精品 | 欧美老妇与禽交 | 亚洲日韩av一区二区三区中文 | 两性色午夜免费视频 | 国产在热线精品视频 | 九九久久精品国产免费看小说 | 国产精品香蕉在线观看 | 亚洲午夜福利在线观看 | 色一情一乱一伦一视频免费看 | 亚洲男人av香蕉爽爽爽爽 | 亚洲日韩av一区二区三区中文 | 天天摸天天碰天天添 | 中文字幕人妻无码一夲道 | 亚洲理论电影在线观看 | 男女猛烈xx00免费视频试看 | 免费男性肉肉影院 | 内射后入在线观看一区 | 国产精品-区区久久久狼 | 亚洲自偷自偷在线制服 | 国产精品无码一区二区桃花视频 | 国产精品18久久久久久麻辣 | 波多野结衣av一区二区全免费观看 | 性啪啪chinese东北女人 | 欧美日韩人成综合在线播放 | 亚洲国产精品无码一区二区三区 | 欧美老妇与禽交 | 亚洲欧洲无卡二区视頻 | 内射爽无广熟女亚洲 | 色综合久久久久综合一本到桃花网 | 国产成人综合美国十次 | 国产美女精品一区二区三区 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲s色大片在线观看 | yw尤物av无码国产在线观看 | 国产麻豆精品一区二区三区v视界 | 丝袜足控一区二区三区 | 亚洲色无码一区二区三区 | 中文精品无码中文字幕无码专区 | 国产色xx群视频射精 | 在线精品国产一区二区三区 | 国产无套粉嫩白浆在线 | √8天堂资源地址中文在线 | 丰满护士巨好爽好大乳 | 色综合久久久无码中文字幕 | 黑人粗大猛烈进出高潮视频 | 女高中生第一次破苞av | 乱码午夜-极国产极内射 | 99久久久无码国产精品免费 | 国产精品无码一区二区桃花视频 | 激情五月综合色婷婷一区二区 | 精品无码国产一区二区三区av | 无套内谢老熟女 | 无码av免费一区二区三区试看 | 精品偷拍一区二区三区在线看 | 沈阳熟女露脸对白视频 | 大乳丰满人妻中文字幕日本 | 亚洲成av人片在线观看无码不卡 | 日本精品人妻无码77777 天堂一区人妻无码 | 天堂无码人妻精品一区二区三区 | 国产成人无码av片在线观看不卡 | 久久精品国产99精品亚洲 | 少妇人妻偷人精品无码视频 | 精品久久综合1区2区3区激情 | 美女毛片一区二区三区四区 | 精品亚洲韩国一区二区三区 | 午夜免费福利小电影 | 亚洲精品鲁一鲁一区二区三区 | 久久成人a毛片免费观看网站 | 亚洲码国产精品高潮在线 | 国内精品人妻无码久久久影院 | 免费乱码人妻系列无码专区 | 少妇性荡欲午夜性开放视频剧场 | 久久国产精品精品国产色婷婷 | 国产精品福利视频导航 | 中文字幕无码免费久久9一区9 | 天堂无码人妻精品一区二区三区 | 亚洲欧美日韩国产精品一区二区 | 国产一精品一av一免费 | 欧美熟妇另类久久久久久多毛 | 丰满少妇高潮惨叫视频 | 日韩av激情在线观看 | 国产性生大片免费观看性 | 波多野结衣一区二区三区av免费 | 55夜色66夜色国产精品视频 | 高清不卡一区二区三区 | 少女韩国电视剧在线观看完整 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲国产欧美国产综合一区 | 伊人久久大香线蕉午夜 | 亚洲人成影院在线无码按摩店 | 99久久人妻精品免费一区 | 久久久精品人妻久久影视 | 欧美性色19p | 国产乱子伦视频在线播放 | 18精品久久久无码午夜福利 | 永久免费观看美女裸体的网站 | 精品午夜福利在线观看 | 最近中文2019字幕第二页 | 极品嫩模高潮叫床 | 精品一二三区久久aaa片 | 午夜精品一区二区三区的区别 | 露脸叫床粗话东北少妇 | 国产精品久久久久久久9999 | 蜜臀av无码人妻精品 | 精品无码国产一区二区三区av | 久久久久se色偷偷亚洲精品av | 久久综合久久自在自线精品自 | 国产成人精品必看 | 国产欧美亚洲精品a | 成人欧美一区二区三区黑人 | 国产在线一区二区三区四区五区 | 国产成人午夜福利在线播放 | 国产 精品 自在自线 | 精品无人国产偷自产在线 | 精品成在人线av无码免费看 | 永久黄网站色视频免费直播 | 中文字幕日产无线码一区 | 久久久久亚洲精品中文字幕 | 国产精品高潮呻吟av久久4虎 | 少妇性l交大片 | 国产激情无码一区二区app | 久久亚洲中文字幕无码 | 又大又紧又粉嫩18p少妇 | 夜精品a片一区二区三区无码白浆 | 亚洲色无码一区二区三区 | 少妇被粗大的猛进出69影院 | 中文字幕乱妇无码av在线 | 狠狠躁日日躁夜夜躁2020 | 天堂久久天堂av色综合 | 午夜无码人妻av大片色欲 | 欧美第一黄网免费网站 | 亚洲欧美国产精品专区久久 | 亚洲呦女专区 | 波多野结衣乳巨码无在线观看 | 无码免费一区二区三区 | 亚洲国产精品毛片av不卡在线 | 67194成是人免费无码 | 中文字幕乱码人妻无码久久 | 丰满人妻一区二区三区免费视频 | 小鲜肉自慰网站xnxx | 丁香花在线影院观看在线播放 | 日本熟妇大屁股人妻 | 永久黄网站色视频免费直播 | 午夜精品久久久久久久 | 任你躁在线精品免费 | 67194成是人免费无码 | 国产艳妇av在线观看果冻传媒 | 成年美女黄网站色大免费全看 | 色窝窝无码一区二区三区色欲 | 国产精品成人av在线观看 | 精品 日韩 国产 欧美 视频 | 亚洲无人区午夜福利码高清完整版 | 国产精品国产三级国产专播 | 久久综合狠狠综合久久综合88 | 九九综合va免费看 | 中国女人内谢69xxxx | 久久久久成人片免费观看蜜芽 | 老太婆性杂交欧美肥老太 | 亚洲欧美色中文字幕在线 | 精品国产一区二区三区四区 | 久久久久久九九精品久 | 久久综合色之久久综合 | 美女极度色诱视频国产 | 亚洲精品国偷拍自产在线麻豆 | 欧美大屁股xxxxhd黑色 | 一本久道久久综合狠狠爱 | 中文字幕乱码人妻无码久久 | 亚洲精品一区三区三区在线观看 | 国产尤物精品视频 | 国产偷自视频区视频 | 麻豆国产人妻欲求不满 | 欧美日韩一区二区免费视频 | 欧美人与禽猛交狂配 | 国模大胆一区二区三区 | 欧美成人午夜精品久久久 | 日本乱人伦片中文三区 | 日本xxxx色视频在线观看免费 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲精品一区二区三区四区五区 | 色诱久久久久综合网ywww | 日本www一道久久久免费榴莲 | 国产成人精品久久亚洲高清不卡 | 玩弄人妻少妇500系列视频 | 无码国模国产在线观看 | 精品人妻人人做人人爽 | 日本熟妇乱子伦xxxx | 88国产精品欧美一区二区三区 | 久久午夜无码鲁丝片午夜精品 | 国产内射爽爽大片视频社区在线 | a片免费视频在线观看 | 黑人巨大精品欧美一区二区 | 啦啦啦www在线观看免费视频 | 婷婷综合久久中文字幕蜜桃三电影 | 欧美日韩一区二区三区自拍 | 免费人成在线视频无码 | 强奷人妻日本中文字幕 | 亚洲国产欧美国产综合一区 | 久久久中文久久久无码 | 无码人妻少妇伦在线电影 | 无遮挡国产高潮视频免费观看 | 欧美一区二区三区 | √8天堂资源地址中文在线 | 色偷偷人人澡人人爽人人模 | 亚洲欧美日韩成人高清在线一区 | 亚洲精品中文字幕 | 亚洲色成人中文字幕网站 | 国产欧美亚洲精品a | 人人爽人人澡人人人妻 | 老太婆性杂交欧美肥老太 | 无码乱肉视频免费大全合集 | 国产成人无码区免费内射一片色欲 | 国产香蕉尹人视频在线 | 大胆欧美熟妇xx | 日韩欧美成人免费观看 | 亚洲国产一区二区三区在线观看 | 久青草影院在线观看国产 | 麻豆国产97在线 | 欧洲 | 伦伦影院午夜理论片 | 日日夜夜撸啊撸 | 欧美放荡的少妇 | a片免费视频在线观看 | 欧美黑人乱大交 | 少妇无码一区二区二三区 | 国产成人精品必看 | 男女作爱免费网站 | 精品亚洲韩国一区二区三区 | 小泽玛莉亚一区二区视频在线 | 亚洲欧美精品伊人久久 | а天堂中文在线官网 | 亚洲va中文字幕无码久久不卡 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲区欧美区综合区自拍区 | 久久亚洲精品成人无码 | 中文字幕乱码人妻二区三区 | 亚洲一区二区三区国产精华液 | 久久无码人妻影院 | 国产精品igao视频网 | 国产疯狂伦交大片 | 久久精品一区二区三区四区 | 久久午夜无码鲁丝片秋霞 | 国产亚洲欧美日韩亚洲中文色 | 欧美高清在线精品一区 | 欧美人妻一区二区三区 | 97无码免费人妻超级碰碰夜夜 | 亚洲欧美精品伊人久久 | 男人扒开女人内裤强吻桶进去 | 狠狠cao日日穞夜夜穞av | 国产情侣作爱视频免费观看 | 国产又爽又猛又粗的视频a片 | 国产精品.xx视频.xxtv | 捆绑白丝粉色jk震动捧喷白浆 | 久久久久99精品成人片 | 免费男性肉肉影院 | 久久综合久久自在自线精品自 | 亚洲中文字幕无码一久久区 | www一区二区www免费 | av小次郎收藏 | 男人的天堂av网站 | 午夜精品一区二区三区的区别 | 国产成人精品三级麻豆 | 欧洲欧美人成视频在线 | 亚洲综合精品香蕉久久网 | 国产av一区二区精品久久凹凸 | 欧美日韩一区二区三区自拍 | 在线观看国产一区二区三区 | 精品国产乱码久久久久乱码 | 成人av无码一区二区三区 | 最新国产麻豆aⅴ精品无码 | 欧美国产亚洲日韩在线二区 | 成人性做爰aaa片免费看 | 无码国内精品人妻少妇 | 天天综合网天天综合色 | 99精品国产综合久久久久五月天 | 人人妻人人澡人人爽精品欧美 | 亚洲精品久久久久久一区二区 | 欧美精品无码一区二区三区 | 澳门永久av免费网站 | 亚洲精品中文字幕 | 国产欧美熟妇另类久久久 | 亚洲成a人一区二区三区 | 国产免费久久久久久无码 | 欧美 日韩 人妻 高清 中文 | 国产精品无码mv在线观看 | 亚洲成a人片在线观看无码3d | 丰满岳乱妇在线观看中字无码 | 美女极度色诱视频国产 | 亚洲s码欧洲m码国产av | 国产精品无码永久免费888 | 99精品无人区乱码1区2区3区 | 丰满人妻精品国产99aⅴ | 麻豆果冻传媒2021精品传媒一区下载 | 大色综合色综合网站 | 东京热一精品无码av | 精品国产成人一区二区三区 | 午夜熟女插插xx免费视频 | 日本乱人伦片中文三区 | 亚洲中文无码av永久不收费 | 国产热a欧美热a在线视频 | 欧美熟妇另类久久久久久多毛 | 99久久婷婷国产综合精品青草免费 | 久久久精品欧美一区二区免费 | 强奷人妻日本中文字幕 | 亚洲 高清 成人 动漫 | 亚洲男女内射在线播放 | 久久这里只有精品视频9 | 国产精品18久久久久久麻辣 | 精品国产成人一区二区三区 | 国产亚洲精品久久久久久 | 国产色xx群视频射精 | 荫蒂被男人添的好舒服爽免费视频 | 最近的中文字幕在线看视频 | 一区二区三区乱码在线 | 欧洲 | 久久人人97超碰a片精品 | 人妻无码久久精品人妻 | 欧美人与善在线com | 国产精品久久久久7777 | 国产精品无码成人午夜电影 | 嫩b人妻精品一区二区三区 | 大地资源网第二页免费观看 | 精品偷拍一区二区三区在线看 | 亚洲国产日韩a在线播放 | 国产色在线 | 国产 | 日日噜噜噜噜夜夜爽亚洲精品 | 激情五月综合色婷婷一区二区 | 无码av免费一区二区三区试看 | 小泽玛莉亚一区二区视频在线 | 精品熟女少妇av免费观看 | 99久久久无码国产精品免费 | 丰满少妇高潮惨叫视频 | 亚洲色大成网站www | 无码av岛国片在线播放 | 亚洲s码欧洲m码国产av | 男女爱爱好爽视频免费看 | 成人欧美一区二区三区黑人 | 色欲人妻aaaaaaa无码 | 熟妇女人妻丰满少妇中文字幕 | 久久无码人妻影院 | 麻豆md0077饥渴少妇 | 99久久人妻精品免费二区 | 免费观看激色视频网站 | 国产美女精品一区二区三区 | ass日本丰满熟妇pics | 亚洲 日韩 欧美 成人 在线观看 | 欧美兽交xxxx×视频 | 又大又黄又粗又爽的免费视频 | 久9re热视频这里只有精品 | 老熟女重囗味hdxx69 | 免费网站看v片在线18禁无码 | 久久国产劲爆∧v内射 | 久久久久久av无码免费看大片 | 亚洲精品成a人在线观看 | 亚洲s色大片在线观看 | 97精品国产97久久久久久免费 | 国产成人精品视频ⅴa片软件竹菊 | 中文字幕人妻无码一夲道 | 亚洲自偷精品视频自拍 | 99精品无人区乱码1区2区3区 | 日韩视频 中文字幕 视频一区 | 中文字幕人妻无码一区二区三区 | 亚洲精品一区国产 | 永久免费观看美女裸体的网站 | 国精产品一区二区三区 | 久久99久久99精品中文字幕 | 无码人妻丰满熟妇区五十路百度 | 国产又粗又硬又大爽黄老大爷视 | 成人无码影片精品久久久 | 国内揄拍国内精品人妻 | 久久久久免费看成人影片 | 欧美老妇与禽交 | 中文字幕无码免费久久9一区9 | 国产国语老龄妇女a片 | 国产美女精品一区二区三区 | 性生交大片免费看女人按摩摩 | 人人妻人人澡人人爽欧美一区 | 日韩精品成人一区二区三区 | 老头边吃奶边弄进去呻吟 | 国产激情一区二区三区 | 成人一区二区免费视频 | 国产成人人人97超碰超爽8 | 亚洲乱码中文字幕在线 | 国产午夜精品一区二区三区嫩草 | 国产亚av手机在线观看 | 日韩少妇内射免费播放 | 免费观看的无遮挡av | 荡女精品导航 | 国产精品无码成人午夜电影 | 亚洲人成网站免费播放 | 亚洲一区二区三区在线观看网站 | 一本色道婷婷久久欧美 | 欧美怡红院免费全部视频 | 成人亚洲精品久久久久 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产片av国语在线观看 | 久久久成人毛片无码 | a在线观看免费网站大全 | 久久久久99精品国产片 | 亚洲经典千人经典日产 | 亚洲国产欧美国产综合一区 | 成人精品视频一区二区 | 亚洲精品欧美二区三区中文字幕 | 国产精品久久久久无码av色戒 | 精品日本一区二区三区在线观看 | 亚洲精品成人av在线 | 搡女人真爽免费视频大全 | 亚洲男人av香蕉爽爽爽爽 | 牲欲强的熟妇农村老妇女视频 | 日韩欧美中文字幕在线三区 | 亚洲阿v天堂在线 | 无码帝国www无码专区色综合 | 中文字幕人妻无码一区二区三区 | 国产午夜亚洲精品不卡下载 | 亚洲爆乳无码专区 | 黑人巨大精品欧美一区二区 | 在线成人www免费观看视频 | 国产精品久久福利网站 | 日本乱人伦片中文三区 | 乱人伦人妻中文字幕无码 | 久久99精品久久久久婷婷 | 少妇人妻偷人精品无码视频 | 国产一区二区三区日韩精品 | 午夜免费福利小电影 | 亚洲 日韩 欧美 成人 在线观看 | 中国女人内谢69xxxx | 黑人巨大精品欧美一区二区 | 一本大道伊人av久久综合 | 天海翼激烈高潮到腰振不止 | 久久久久亚洲精品男人的天堂 | 国产精品无码一区二区三区不卡 | 精品厕所偷拍各类美女tp嘘嘘 | 麻豆精品国产精华精华液好用吗 | 亚洲国产精品毛片av不卡在线 | 久久99热只有频精品8 | 激情人妻另类人妻伦 | 国产一区二区三区四区五区加勒比 | 熟女体下毛毛黑森林 | 日韩亚洲欧美中文高清在线 | 麻豆果冻传媒2021精品传媒一区下载 | 色欲av亚洲一区无码少妇 | 国产成人精品三级麻豆 | 日日麻批免费40分钟无码 | 国产免费观看黄av片 | 国产极品美女高潮无套在线观看 | 国产精品久久久午夜夜伦鲁鲁 | 免费乱码人妻系列无码专区 | 激情内射亚州一区二区三区爱妻 | 国产另类ts人妖一区二区 | av无码不卡在线观看免费 | 亚洲精品久久久久久一区二区 | 国产亚洲欧美在线专区 | 成人免费视频一区二区 | 初尝人妻少妇中文字幕 | 鲁鲁鲁爽爽爽在线视频观看 | 日韩成人一区二区三区在线观看 | а√资源新版在线天堂 | 无码任你躁久久久久久久 | 性做久久久久久久免费看 | 日韩欧美中文字幕公布 | v一区无码内射国产 | 亚洲欧美日韩成人高清在线一区 | 久久综合九色综合欧美狠狠 | 88国产精品欧美一区二区三区 | 又紧又大又爽精品一区二区 | 久久人人爽人人爽人人片ⅴ | 高潮毛片无遮挡高清免费视频 | 国内精品九九久久久精品 | 无码精品国产va在线观看dvd | 日韩欧美中文字幕在线三区 | 亚洲国产日韩a在线播放 | 亚洲色大成网站www国产 | 欧美三级不卡在线观看 | 丰满少妇女裸体bbw | 奇米影视7777久久精品 | 久久99精品国产麻豆 | 亚洲一区av无码专区在线观看 | 欧美 日韩 人妻 高清 中文 | 欧美35页视频在线观看 | 婷婷五月综合激情中文字幕 | 在线看片无码永久免费视频 | 国产熟女一区二区三区四区五区 | 无码人妻精品一区二区三区不卡 | 中文字幕乱码人妻二区三区 | 午夜熟女插插xx免费视频 | 欧美日韩精品 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 欧美一区二区三区视频在线观看 | 国产精品人人妻人人爽 | 国产人妻精品一区二区三区 | 中文字幕久久久久人妻 | 内射爽无广熟女亚洲 | 牲欲强的熟妇农村老妇女视频 | 色欲av亚洲一区无码少妇 | 国产人妻人伦精品1国产丝袜 | 欧美国产日韩久久mv | 在线а√天堂中文官网 | 中文精品无码中文字幕无码专区 | 亚洲爆乳精品无码一区二区三区 | 国模大胆一区二区三区 | 欧洲精品码一区二区三区免费看 | 欧美阿v高清资源不卡在线播放 | 自拍偷自拍亚洲精品10p | 亚洲国产欧美在线成人 | 国产97在线 | 亚洲 | 2020最新国产自产精品 | 人妻aⅴ无码一区二区三区 | 国内揄拍国内精品人妻 | 日产精品高潮呻吟av久久 | 国产在线无码精品电影网 | 久久精品国产精品国产精品污 | 久久久www成人免费毛片 | 久久综合九色综合欧美狠狠 | 亚洲区欧美区综合区自拍区 | 中文字幕av无码一区二区三区电影 | 国产精品久久久久影院嫩草 | 国产人妖乱国产精品人妖 | 国产成人精品久久亚洲高清不卡 | 中文字幕av伊人av无码av | 国产在线aaa片一区二区99 | 欧美老妇交乱视频在线观看 | 久久99精品国产麻豆 | 国产精品国产自线拍免费软件 | 精品无人区无码乱码毛片国产 | 天天燥日日燥 | 天天综合网天天综合色 | 久久久国产一区二区三区 | 国产人妻人伦精品1国产丝袜 | 国产午夜手机精彩视频 | 国产精品高潮呻吟av久久4虎 | 亚洲中文字幕成人无码 | 亚洲午夜久久久影院 | 国产激情艳情在线看视频 | 老子影院午夜精品无码 | 亚洲色偷偷男人的天堂 | 国内揄拍国内精品人妻 | 亚洲欧美精品aaaaaa片 | 国产亚洲美女精品久久久2020 | 精品久久8x国产免费观看 | 乱中年女人伦av三区 | 中文字幕无线码 | 亚洲精品一区二区三区大桥未久 | 18黄暴禁片在线观看 | 性色欲网站人妻丰满中文久久不卡 | 成人免费无码大片a毛片 | 99re在线播放 | 人人妻人人澡人人爽欧美一区九九 | 国产农村妇女高潮大叫 | 久激情内射婷内射蜜桃人妖 | 久久精品一区二区三区四区 | 无码av中文字幕免费放 | 精品久久久无码人妻字幂 | 日韩成人一区二区三区在线观看 | 亚洲人成网站色7799 | 中文字幕人成乱码熟女app | 欧美激情一区二区三区成人 | 国产精品无码一区二区三区不卡 | 一本大道久久东京热无码av | 东京热无码av男人的天堂 | 国产精华av午夜在线观看 | 亚洲伊人久久精品影院 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 久激情内射婷内射蜜桃人妖 | 亚洲精品国偷拍自产在线麻豆 | 久久99精品国产麻豆蜜芽 | 给我免费的视频在线观看 | 午夜不卡av免费 一本久久a久久精品vr综合 | 性史性农村dvd毛片 | 国产人妖乱国产精品人妖 | 99精品久久毛片a片 | 免费看男女做好爽好硬视频 | 999久久久国产精品消防器材 | 中文字幕日产无线码一区 | 日本成熟视频免费视频 | 日本高清一区免费中文视频 | 久久天天躁狠狠躁夜夜免费观看 | 伊人久久大香线蕉亚洲 | 精品熟女少妇av免费观看 | 最近的中文字幕在线看视频 | 国产av人人夜夜澡人人爽麻豆 | 人妻互换免费中文字幕 | 精品亚洲韩国一区二区三区 | 午夜福利电影 | √天堂中文官网8在线 | 亚洲欧美日韩综合久久久 | 亚洲中文字幕乱码av波多ji | 国产综合久久久久鬼色 | 亚洲精品中文字幕久久久久 | 帮老师解开蕾丝奶罩吸乳网站 | 欧美 丝袜 自拍 制服 另类 | 亚洲精品www久久久 | 日日噜噜噜噜夜夜爽亚洲精品 | 美女黄网站人色视频免费国产 | 欧美三级a做爰在线观看 | 2019nv天堂香蕉在线观看 | 无遮挡国产高潮视频免费观看 | 久久亚洲精品成人无码 | 欧洲美熟女乱又伦 | 日日噜噜噜噜夜夜爽亚洲精品 | 人妻夜夜爽天天爽三区 | 少妇无码av无码专区在线观看 | 国产麻豆精品精东影业av网站 | 精品无码国产一区二区三区av | 亚洲高清偷拍一区二区三区 | 亚洲精品一区二区三区在线观看 | 久久97精品久久久久久久不卡 | 中文字幕av无码一区二区三区电影 | 岛国片人妻三上悠亚 | 成人动漫在线观看 | 亚洲欧美色中文字幕在线 | 亚洲国产欧美日韩精品一区二区三区 | 日本www一道久久久免费榴莲 | 成人无码视频在线观看网站 | 大色综合色综合网站 | 国产成人一区二区三区在线观看 | 亚洲欧美日韩成人高清在线一区 | 国产高清不卡无码视频 | 成年美女黄网站色大免费全看 | 亚洲天堂2017无码 | 无码乱肉视频免费大全合集 | 少妇久久久久久人妻无码 | 人妻少妇精品无码专区二区 | 无码人妻丰满熟妇区毛片18 | √天堂资源地址中文在线 | 欧美黑人性暴力猛交喷水 | 亚洲国精产品一二二线 | 美女毛片一区二区三区四区 | 男女性色大片免费网站 | 无码人妻精品一区二区三区不卡 | 国产成人综合在线女婷五月99播放 | 天天拍夜夜添久久精品 | 永久免费精品精品永久-夜色 | 亚洲中文无码av永久不收费 | 亚洲自偷自偷在线制服 | 中文精品无码中文字幕无码专区 | 国产精品-区区久久久狼 | 人妻aⅴ无码一区二区三区 | 成人亚洲精品久久久久 | 日韩无套无码精品 | 野外少妇愉情中文字幕 | 久久99国产综合精品 | 成人无码精品一区二区三区 | 精品人人妻人人澡人人爽人人 | 色婷婷av一区二区三区之红樱桃 | 国产人妻久久精品二区三区老狼 | 久久99精品国产.久久久久 | 欧美丰满熟妇xxxx性ppx人交 | 久久天天躁夜夜躁狠狠 | 少妇无套内谢久久久久 | 精品国产一区二区三区四区在线看 | 国产午夜亚洲精品不卡下载 | 亚洲中文字幕乱码av波多ji | a片在线免费观看 | 丰满肥臀大屁股熟妇激情视频 | 久久这里只有精品视频9 | 窝窝午夜理论片影院 | 西西人体www44rt大胆高清 | 亚洲日韩精品欧美一区二区 | 无码帝国www无码专区色综合 | 欧美猛少妇色xxxxx | 内射爽无广熟女亚洲 |