老司机夜插-理伦理片-理伦片免费-理伦片免费观看-理伦片免费看-理伦日韩-理论福利片-理论片第一页-理论片电影-理论片理论

金喜正规买球

Swift編程語言中文教程(二十二):Swift泛型

原創|使用教程|編輯:龔雪|2014-06-20 09:42:51.000|閱讀 761 次

概述:本文為Swift編程語言中文教程第二十而部分,講解Swift泛型,內容包括:Swift泛型所解決的問題、泛型函數、類型參數、命名類型參數、泛型類型、類型約束、關聯類型、Where語句等。Swift是蘋果公司在WWDC2014發布的一門編程語言,與Objective-C相比,對學習新手比較友好。慧都控件網根據官方教程以及網上中文資源整理了Swift編程語言中文教程,希望幫助想要學習Swift的朋友,由于技術有限,可能有不足的地方,希望大家指正。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

相關鏈接:

本頁包含內容:

泛型代碼可以讓你寫出根據自我需求定義、適用于任何類型的,靈活且可重用的函數和類型。它的可以讓你避免重復的代碼,用一種清晰和抽象的方式來表達代碼的意圖。

泛型是 Swift 強大特征中的其中一個,許多 Swift 標準庫是通過泛型代碼構建出來的。事實上,泛型的使用貫穿了整本語言手冊,只是你沒有發現而已。例如,Swift 的數組和字典類型都是泛型集。你可以創建一個Int數組,也可創建一個String數組,或者甚至于可以是任何其他 Swift 的類型數據數組。同樣的,你也可以創建存儲任何指定類型的字典(dictionary),而且這些類型可以是沒有限制的。

泛型所解決的問題

這里是一個標準的,非泛型函數swapTwoInts,用來交換兩個Int值:

func swapTwoInts(inout a: Int, inout b: Int)
  let temporaryA = a
  a = b
  b = temporaryA
}

這個函數使用寫入讀出(in-out)參數來交換a和b的值,請參考寫入讀出參數

swapTwoInts函數可以交換b的原始值到a,也可以交換a的原始值到b,你可以調用這個函數交換兩個Int變量值:

var someInt = 3
var anotherInt = 107
swapTwoInts(&someInt, &anotherInt)
println("someInt is now \(someInt), and anotherInt is now \(anotherInt)")
// 輸出 "someInt is now 107, and anotherInt is now 3"

swapTwoInts函數是非常有用的,但是它只能交換Int值,如果你想要交換兩個String或者Double,就不得不寫更多的函數,如 swapTwoStrings和swapTwoDoublesfunctions,如同如下所示:

func swapTwoStrings(inout a: String, inout b: String) {
    let temporaryA = a
    a = b
    b = temporaryA
}

func swapTwoDoubles(inout a: Double, inout b: Double) {
    let temporaryA = a
    a = b
    b = temporaryA
}

你可能注意到 swapTwoInts、 swapTwoStrings和swapTwoDoubles函數功能都是相同的,唯一不同之處就在于傳入的變量類型不同,分別是Int、String和Double。

但實際應用中通常需要一個用處更強大并且盡可能的考慮到更多的靈活性單個函數,可以用來交換兩個任何類型值,很幸運的是,泛型代碼幫你解決了這種問題。(一個這種泛型函數后面已經定義好了。)

注意:
在所有三個函數中,a和b的類型是一樣的。如果a和b不是相同的類型,那它們倆就不能互換值。Swift 是類型安全的語言,所以它不允許一個String類型的變量和一個Double類型的變量互相交換值。如果一定要做,Swift 將報編譯錯誤。

泛型函數

泛型函數可以工作于任何類型,這里是一個上面swapTwoInts函數的泛型版本,用于交換兩個值:

func swapTwoValues<T>(inout a: T, inout b: T) {
    let temporaryA = a
    a = b
    b = temporaryA
}

swapTwoValues函數主體和swapTwoInts函數是一樣的,它只在第一行稍微有那么一點點不同于swapTwoInts,如下所示:

func swapTwoInts(inout a: Int, inout b: Int)
func swapTwoValues<T>(inout a: T, inout b: T)

這個函數的泛型版本使用了占位類型名字(通常此情況下用字母T來表示)來代替實際類型名(如In、String或Doubl)。占位類型名沒有提示T必須是什么類型,但是它提示了a和b必須是同一類型T,而不管T表示什么類型。只有swapTwoValues函數在每次調用時所傳入的實際類型才能決定T所代表的類型。

另外一個不同之處在于這個泛型函數名后面跟著的展位類型名字(T)是用尖括號括起來的(<T>)。這個尖括號告訴 Swift 那個T是swapTwoValues函數所定義的一個類型。因為T是一個占位命名類型,Swift 不會去查找命名為T的實際類型。

swapTwoValues函數除了要求傳入的兩個任何類型值是同一類型外,也可以作為swapTwoInts函數被調用。每次swapTwoValues被調用,T所代表的類型值都會傳給函數。

在下面的兩個例子中,T分別代表Int和String:

var someInt = 3
var anotherInt = 107
swapTwoValues(&someInt, &anotherInt)
// someInt is now 107, and anotherInt is now 3
var someString = "hello"
var anotherString = "world"
swapTwoValues(&someString, &anotherString)
// someString is now "world", and anotherString is now "hello"

注意
上面定義的函數swapTwoValues是受swap函數啟發而實現的。swap函數存在于 Swift 標準庫,并可以在其它類中任意使用。如果你在自己代碼中需要類似swapTwoValues函數的功能,你可以使用已存在的交換函數swap函數。

類型參數

在上面的swapTwoValues例子中,占位類型T是一種類型參數的示例。類型參數指定并命名為一個占位類型,并且緊隨在函數名后面,使用一對尖括號括起來(如<T>)。

一旦一個類型參數被指定,那么其可以被使用來定義一個函數的參數類型(如swapTwoValues函數中的參數a和b),或作為一個函數返回類型,或用作函數主體中的注釋類型。在這種情況下,被類型參數所代表的占位類型不管函數任何時候被調用,都會被實際類型所替換(在上面swapTwoValues例子中,當函數第一次被調用時,T被Int替換,第二次調用時,被String替換。)。

你可支持多個類型參數,命名在尖括號中,用逗號分開。

命名類型參數

在簡單的情況下,泛型函數或泛型類型需要指定一個占位類型(如上面的swapTwoValues泛型函數,或一個存儲單一類型的泛型集,如數組),通常用一單個字母T來命名類型參數。不過,你可以使用任何有效的標識符來作為類型參數名。

如果你使用多個參數定義更復雜的泛型函數或泛型類型,那么使用更多的描述類型參數是非常有用的。例如,Swift 字典(Dictionary)類型有兩個類型參數,一個是鍵,另外一個是值。如果你自己寫字典,你或許會定義這兩個類型參數為KeyType和ValueType,用來記住它們在你的泛型代碼中的作用。

注意
請始終使用大寫字母開頭的駝峰式命名法(例如T和KeyType)來給類型參數命名,以表明它們是類型的占位符,而非類型值。

泛型類型

通常在泛型函數中,Swift 允許你定義你自己的泛型類型。這些自定義類、結構體和枚舉作用于任何類型,如同Array和Dictionary的用法。

這部分向你展示如何寫一個泛型集類型--Stack(棧)。一個棧是一系列值域的集合,和Array(數組)類似,但其是一個比 Swift 的Array類型更多限制的集合。一個數組可以允許其里面任何位置的插入/刪除操作,而棧,只允許在集合的末端添加新的項(如同push一個新值進棧)。同樣的一個棧也只能從末端移除項(如同pop一個值出棧)。

注意
棧的概念已被UINavigationController類使用來模擬試圖控制器的導航結構。你通過調用UINavigationController的pushViewController:animated:方法來為導航棧添加(add)新的試圖控制器;而通過popViewControllerAnimated:的方法來從導航棧中移除(pop)某個試圖控制器。每當你需要一個嚴格的后進先出方式來管理集合,堆棧都是最實用的模型。

下圖展示了一個棧的壓棧(push)/出棧(pop)的行為:

Swift編程語言中文教程(二十二):Swift泛型

  1. 現在有三個值在棧中;
  2. 第四個值“pushed”到棧的頂部;
  3. 現在有四個值在棧中,最近的那個在頂部;
  4. 棧中最頂部的那個項被移除,或稱之為“popped”;
  5. 移除掉一個值后,現在棧又重新只有三個值。

這里展示了如何寫一個非泛型版本的棧,Int值型的棧:

struct IntStack {
    var items = Int[]()
    mutating func push(item: Int) {
        items.append(item)
    }
    mutating func pop() -> Int {
        return items.removeLast()
    }
}

這個結構體在棧中使用一個Array性質的items存儲值。Stack提供兩個方法:push和pop,從棧中壓進一個值和移除一個值。這些方法標記為可變的,因為它們需要修改(或轉換)結構體的items數組。

上面所展現的IntStack類型只能用于Int值,不過,其對于定義一個泛型Stack類(可以處理任何類型值的棧)是非常有用的。

這里是一個相同代碼的泛型版本:

struct Stack<T> {
    var items = T[]()
    mutating func push(item: T) {
        items.append(item)
    }
    mutating func pop() -> T {
        return items.removeLast()
    }
}

注意到Stack的泛型版本基本上和非泛型版本相同,但是泛型版本的占位類型參數為T代替了實際Int類型。這種類型參數包含在一對尖括號里(<T>),緊隨在結構體名字后面。

T定義了一個名為“某種類型T”的節點提供給后來用。這種將來類型可以在結構體的定義里任何地方表示為“T&rdquo;。在這種情況下,T在如下三個地方被用作節點:

  • 創建一個名為items的屬性,使用空的T類型值數組對其進行初始化;
  • 指定一個包含一個參數名為item的push方法,該參數必須是T類型;
  • 指定一個pop方法的返回值,該返回值將是一個T類型值。

當創建一個新單例并初始化時, 通過用一對緊隨在類型名后的尖括號里寫出實際指定棧用到類型,創建一個Stack實例,同創建Array和Dictionary一樣:

var stackOfStrings = Stack<String>()
stackOfStrings.push("uno")
stackOfStrings.push("dos")
stackOfStrings.push("tres")
stackOfStrings.push("cuatro")
// 現在棧已經有4個string了

下圖將展示stackOfStrings如何push這四個值進棧的過程:

Swift編程語言中文教程(二十二):Swift泛型

從棧中pop并移除值"cuatro":

let fromTheTop = stackOfStrings.pop()
// fromTheTop is equal to "cuatro", and the stack now contains 3 strings

下圖展示了如何從棧中pop一個值的過程:
Swift編程語言中文教程(二十二):Swift泛型

由于Stack是泛型類型,所以在 Swift 中其可以用來創建任何有效類型的棧,這種方式如同Array和Dictionary。

類型約束

swapTwoValues函數和Stack類型可以作用于任何類型,不過,有的時候對使用在泛型函數和泛型類型上的類型強制約束為某種特定類型是非常有用的。類型約束指定了一個必須繼承自指定類的類型參數,或者遵循一個特定的協議或協議構成。

例如,Swift 的Dictionary類型對作用于其鍵的類型做了些限制。在字典的描述中,字典的鍵類型必須是可哈希,也就是說,必須有一種方法可以使其被唯一的表示。Dictionary之所以需要其鍵是可哈希是為了以便于其檢查其是否已經包含某個特定鍵的值。如無此需求,Dictionary既不會告訴是否插入或者替換了某個特定鍵的值,也不能查找到已經存儲在字典里面的給定鍵值。

這個需求強制加上一個類型約束作用于Dictionary的鍵上,當然其鍵類型必須遵循Hashable協議(Swift 標準庫中定義的一個特定協議)。所有的 Swift 基本類型(如String,Int, Double和 Bool)默認都是可哈希。

當你創建自定義泛型類型時,你可以定義你自己的類型約束,當然,這些約束要支持泛型編程的強力特征中的多數。抽象概念如可哈希具有的類型特征是根據它們概念特征來界定的,而不是它們的直接類型特征。

類型約束語法

你可以寫一個在一個類型參數名后面的類型約束,通過冒號分割,來作為類型參數鏈的一部分。這種作用于泛型函數的類型約束的基礎語法如下所示(和泛型類型的語法相同):

func someFunction<T: SomeClass, U: SomeProtocol>(someT: T, someU: U) {
    // function body goes here
}

上面這個假定函數有兩個類型參數。第一個類型參數T,有一個需要T必須是SomeClass子類的類型約束;第二個類型參數U,有一個需要U必須遵循SomeProtocol協議的類型約束。

類型約束行為

這里有個名為findStringIndex的非泛型函數,該函數功能是去查找包含一給定String值的數組。若查找到匹配的字符串,findStringIndex函數返回該字符串在數組中的索引值(Int),反之則返回nil:

func findStringIndex(array: String[], valueToFind: String) -> Int? {
    for (index, value) in enumerate(array) {
        if value == valueToFind {
            return index
        }
    }
    return nil
}

findStringIndex函數可以作用于查找一字符串數組中的某個字符串:

let strings = ["cat", "dog", "llama", "parakeet", "terrapin"]
if let foundIndex = findStringIndex(strings, "llama") {
    println("The index of llama is \(foundIndex)")
}
// 輸出 "The index of llama is 2"

如果只是針對字符串而言查找在數組中的某個值的索引,用處不是很大,不過,你可以寫出相同功能的泛型函數findIndex,用某個類型T值替換掉提到的字符串。

這里展示如何寫一個你或許期望的findStringIndex的泛型版本findIndex。請注意這個函數仍然返回Int,是不是有點迷惑呢,而不是泛型類型?那是因為函數返回的是一個可選的索引數,而不是從數組中得到的一個可選值。需要提醒的是,這個函數不會編譯,原因在例子后面會說明:

func findIndex<T>(array: T[], valueToFind: T) -> Int? {
    for (index, value) in enumerate(array) {
        if value == valueToFind {
            return index
        }
    }
    return nil
}

上面所寫的函數不會編譯。這個問題的位置在等式的檢查上,“if value == valueToFind”。不是所有的 Swift 中的類型都可以用等式符(==)進行比較。例如,如果你創建一個你自己的類或結構體來表示一個復雜的數據模型,那么 Swift 沒法猜到對于這個類或結構體而言“等于”的意思。正因如此,這部分代碼不能可能保證工作于每個可能的類型T,當你試圖編譯這部分代碼時估計會出現相應的錯誤。

不過,所有的這些并不會讓我們無從下手。Swift 標準庫中定義了一個Equatable協議,該協議要求任何遵循的類型實現等式符(==)和不等符(!=)對任何兩個該類型進行比較。所有的 Swift 標準類型自動支持Equatable協議。

任何Equatable類型都可以安全的使用在findIndex函數中,因為其保證支持等式操作。為了說明這個事實,當你定義一個函數時,你可以寫一個Equatable類型約束作為類型參數定義的一部分:

func findIndex<T: Equatable>(array: T[], valueToFind: T) -> Int? {
    for (index, value) in enumerate(array) {
        if value == valueToFind {
            return index
        }
    }
    return nil
}

findIndex中這個單個類型參數寫做:T: Equatable,也就意味著“任何T類型都遵循Equatable協議&rdquo;。

findIndex函數現在則可以成功的編譯過,并且作用于任何遵循Equatable的類型,如Double或String:

let doubleIndex = findIndex([3.14159, 0.1, 0.25], 9.3)
// doubleIndex is an optional Int with no value, because 9.3 is not in the array
let stringIndex = findIndex(["Mike", "Malcolm", "Andrea"], "Andrea")
// stringIndex is an optional Int containing a value of 2

關聯類型

當定義一個協議時,有的時候聲明一個或多個關聯類型作為協議定義的一部分是非常有用的。一個關聯類型給定作用于協議部分的類型一個節點名(或別名)。作用于關聯類型上實際類型是不需要指定的,直到該協議接受。關聯類型被指定為typealias關鍵字。

關聯類型行為

這里是一個Container協議的例子,定義了一個ItemType關聯類型:

protocol Container {
    typealias ItemType
    mutating func append(item: ItemType)
    var count: Int { get }
    subscript(i: Int) -> ItemType { get }
}

Container協議定義了三個任何容器必須支持的兼容要求:

  • 必須可能通過append方法添加一個新item到容器里;
  • 必須可能通過使用count屬性獲取容器里items的數量,并返回一個Int值;
  • 必須可能通過容器的Int索引值下標可以檢索到每一個item。

這個協議沒有指定容器里item是如何存儲的或何種類型是允許的。這個協議只指定三個任何遵循Container類型所必須支持的功能點。一個遵循的類型也可以提供其他額外的功能,只要滿足這三個條件。

任何遵循Container協議的類型必須指定存儲在其里面的值類型,必須保證只有正確類型的items可以加進容器里,必須明確可以通過其下標返回item類型。

為了定義這三個條件,Container協議需要一個方法指定容器里的元素將會保留,而不需要知道特定容器的類型。Container協議需要指定任何通過append方法添加到容器里的值和容器里元素是相同類型,并且通過容器下標返回的容器元素類型的值的類型是相同類型。

為了達到此目的,Container協議聲明了一個ItemType的關聯類型,寫作typealias ItemType。這個協議不會定義ItemType是什么的別名,這個信息留給了任何遵循協議的類型來提供。盡管如此,ItemType別名支持一種方法識別在一個容器里的items類型,以及定義一種使用在append方法和下標中的類型,以便保證任何期望的Container的行為是強制性的。

這里是一個早前IntStack類型的非泛型版本,適用于遵循Container協議:

struct IntStack: Container {
    // original IntStack implementation
    var items = Int[]()
    mutating func push(item: Int) {
        items.append(item)
    }
    mutating func pop() -> Int {
        return items.removeLast()
    }
    // conformance to the Container protocol
    typealias ItemType = Int
    mutating func append(item: Int) {
        self.push(item)
    }
    var count: Int {
    return items.count
    }
    subscript(i: Int) -> Int {
        return items[i]
    }
}

IntStack類型實現了Container協議的所有三個要求,在IntStack類型的每個包含部分的功能都滿足這些要求。

此外,IntStack指定了Container的實現,適用的ItemType被用作Int類型。對于這個Container協議實現而言,定義 typealias ItemType = Int,將抽象的ItemType類型轉換為具體的Int類型。

感謝Swift類型參考,你不用在IntStack定義部分聲明一個具體的Int的ItemType。由于IntStack遵循Container協議的所有要求,只要通過簡單的查找append方法的item參數類型和下標返回的類型,Swift就可以推斷出合適的ItemType來使用。確實,如果上面的代碼中你刪除了 typealias ItemType = Int這一行,一切仍舊可以工作,因為它清楚的知道ItemType使用的是何種類型。

你也可以生成遵循Container協議的泛型Stack類型:

struct Stack<T>: Container {
    // original Stack<T> implementation
    var items = T[]()
    mutating func push(item: T) {
        items.append(item)
    }
    mutating func pop() -> T {
        return items.removeLast()
    }
    // conformance to the Container protocol
    mutating func append(item: T) {
        self.push(item)
    }
    var count: Int {
    return items.count
    }
    subscript(i: Int) -> T {
        return items[i]
    }
}

這個時候,占位類型參數T被用作append方法的item參數和下標的返回類型。Swift 因此可以推斷出被用作這個特定容器的ItemType的T的合適類型。

擴展一個存在的類型為一指定關聯類型

使用擴展來添加協議兼容性中有描述擴展一個存在的類型添加遵循一個協議。這個類型包含一個關聯類型的協議。

Swift的Array已經提供append方法,一個count屬性和通過下標來查找一個自己的元素。這三個功能都達到Container協議的要求。也就意味著你可以擴展Array去遵循Container協議,只要通過簡單聲明Array適用于該協議而已。如何實踐這樣一個空擴展,在使用擴展來聲明協議的采納中有描述這樣一個實現一個空擴展的行為:

extension Array: Container {}

如同上面的泛型Stack類型一樣,Array的append方法和下標保證Swift可以推斷出ItemType所使用的適用的類型。定義了這個擴展后,你可以將任何Array當作Container來使用。

Where 語句

類型約束中描述的類型約束確保你定義關于類型參數的需求和一泛型函數或類型有關聯。

對于關聯類型的定義需求也是非常有用的。你可以通過這樣去定義where語句作為一個類型參數隊列的一部分。一個where語句使你能夠要求一個關聯類型遵循一個特定的協議,以及(或)那個特定的類型參數和關聯類型可以是相同的。你可寫一個where語句,通過緊隨放置where關鍵字在類型參數隊列后面,其后跟著一個或者多個針對關聯類型的約束,以及(或)一個或多個類型和關聯類型的等于關系。

下面的列子定義了一個名為allItemsMatch的泛型函數,用來檢查是否兩個Container單例包含具有相同順序的相同元素。如果匹配到所有的元素,那么返回一個為true的Boolean值,反之,則相反。

這兩個容器可以被檢查出是否是相同類型的容器(雖然它們可以是),但它們確實擁有相同類型的元素。這個需求通過一個類型約束和where語句結合來表示:

func allItemsMatch<
    C1: Container, C2: Container
    where C1.ItemType == C2.ItemType, C1.ItemType: Equatable>
    (someContainer: C1, anotherContainer: C2) -> Bool {

        // check that both containers contain the same number of items
        if someContainer.count != anotherContainer.count {
            return false
        }

        // check each pair of items to see if they are equivalent
        for i in 0..someContainer.count {
            if someContainer[i] != anotherContainer[i] {
                return false
            }
        }

        // all items match, so return true
        return true

}

這個函數用了兩個參數:someContainer和anotherContainer。someContainer參數是類型C1,anotherContainer參數是類型C2。C1和C2是容器的兩個占位類型參數,決定了這個函數何時被調用。

這個函數的類型參數列緊隨在兩個類型參數需求的后面:

  • C1必須遵循Container協議 (寫作 C1: Container)。
  • C2必須遵循Container協議 (寫作 C2: Container)。
  • C1的ItemType同樣是C2的ItemType(寫作 C1.ItemType == C2.ItemType)。
  • C1的ItemType必須遵循Equatable協議 (寫作 C1.ItemType: Equatable)。

第三個和第四個要求被定義為一個where語句的一部分,寫在關鍵字where后面,作為函數類型參數鏈的一部分。

這些要求意思是:

someContainer是一個C1類型的容器。 anotherContainer是一個C2類型的容器。someContainer和anotherContainer包含相同的元素類型。 someContainer中的元素可以通過不等于操作(!=)來檢查它們是否彼此不同。

第三個和第四個要求結合起來的意思是anotherContainer中的元素也可以通過 != 操作來檢查,因為它們在someContainer中元素確實是相同的類型。

這些要求能夠使allItemsMatch函數比較兩個容器,即便它們是不同的容器類型。

allItemsMatch首先檢查兩個容器是否擁有同樣數目的items,如果它們的元素數目不同,沒有辦法進行匹配,函數就會false。

檢查完之后,函數通過for-in循環和半閉區間操作(..)來迭代someContainer中的所有元素。對于每個元素,函數檢查是否someContainer中的元素不等于對應的anotherContainer中的元素,如果這兩個元素不等,則這兩個容器不匹配,返回false。

如果循環體結束后未發現沒有任何的不匹配,那表明兩個容器匹配,函數返回true。

這里演示了allItemsMatch函數運算的過程:

var stackOfStrings = Stack<String>()
stackOfStrings.push("uno")
stackOfStrings.push("dos")
stackOfStrings.push("tres")

var arrayOfStrings = ["uno", "dos", "tres"]

if allItemsMatch(stackOfStrings, arrayOfStrings) {
    println("All items match.")
} else {
    println("Not all items match.")
}
// 輸出 "All items match."

上面的例子創建一個Stack單例來存儲String,然后壓了三個字符串進棧。這個例子也創建了一個Array單例,并初始化包含三個同棧里一樣的原始字符串。即便棧和數組否是不同的類型,但它們都遵循Container協議,而且它們都包含同樣的類型值。你因此可以調用allItemsMatch函數,用這兩個容器作為它的參數。在上面的例子中,allItemsMatch函數正確的顯示了所有的這兩個容器的items匹配。


標簽:Swift

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
色网综合 | 欧美在线视频精品 | 乱码1乱码2美美哒 | 午夜成年奭片免费观看 | 日韩精品免费一线在线观看 | 波多野结衣免费一区二区三区香蕉 | 99福利在线| 日本无码精油按摩WWW视频 | 扛起老师雪白双腿进入小说 | 日韩视频高清 | 曰本三级香港三级人妇99视频 | 九九热伊人 | 色五丁香 | 爱婷婷视频在线观看 | 欧美日韩精品一区二区三区高清视频 | 久国产视频 | 青青自拍视频一区二区三区 | 日本大片高清免费视频日本 | 黄图男在上女在下 | 国产高清亚洲日韩字幕一区 | 亚洲国内精品自在线影院牛牛 | 欧美另类人妖 | 97视屏| 啪啪啪视频在线观看 | 国产精品大陆在线视频 | 男女做哎爱过程图片 | 毛片A久久99亚洲欧美毛片 | 美妇岳妇的肉泬目录 | 亚洲图片欧美日韩 | 色综合亚洲色综合网站 | 日韩国产欧美一区二区三区 | 一区二区三区免费观看 | 日韩在线永久免费播放 | 国产精品爽黄69天堂A片潘金莲 | 中文有码视频 | 福利区体验区120秒免费 | 午夜在线视频网站 | 国产老肥熟xxxx | 一女被多男枪H又黄又激烈 一女多男np高辣文h | 亚洲欧美日韩_欧洲日韩 | 亚洲午夜精品A片一区三区无码 | 国产精品福利一区二区 | 国产成人午夜极速观看 | 欧美日韩精品一区二区三区四区 | 污污的网站免费在线观看 | 被群CAO的合不拢腿H小说 | 久久亚洲AV成人无码电影A片 | 欧美一区中文字幕 | 国语熟妇乱人伦A片久久 | 日韩欧美一二三区 | 欧美xvideosexo孕妇 | 色在线看| 两个女人互添下身爽舒服小说 | 丰满熟妇啪啪区日韩久久 | 欧美女同视频激情 | 国产片AV片永久免费观看 | 无节操摄影部第一集第二集 | 韩国美女毛茸茸 | 天天狠狠干| 成人三级做爰视频在线看 | 国产亚洲精品成人AA片小说 | 国产成人精品日本欧美动漫 | 天天综合网站 | 秋霞电影网院午夜伦不卡A片 | 成都影院手机在线高清 | 香蕉视频97 | 韩国漂亮老师做爰BD在线看 | 亚洲精品中文字幕乱码三区 | 在教室伦流澡到高潮H强圩电影 | 伊人快播| 大学生高清一级毛片免费 | 欧美日韩精品一区二区三区四区 | 成人福利 | 久久国产精品国语对白 | 久久www免费人成高清 | 中文字幕韩国三级少妇在线光看 | 免费无码又爽又刺激A片涩涩在线 | 99热国品| 秋霞电影网伦大理电影在线观看 | 台湾一级毛片永久免费 | 中文字幕5566看片资源 | 东京热男人aV天堂 | 日本高清视频在线免费观看 | 国产国产人精品视频69 | 欧美日韩中文国产一区二区三区 | 无人视频在线观看免费播放下载 | 波多野结衣 一区二区 | bl文库肉yin荡受 | 美味的性 爱2 | 亚洲成年人免费网站 | 在线看伦理电影 | 国产综合一区二区三区 | 男女做爰猛烈啪啪吃奶动A 男人j进女人j的图片 | 视频一区中文字幕 | 三级欧美在线 | 嫡女在闺房里被强高H | 日韩亚洲欧美在线 | 国产91情侣在线精品国产 | 亚洲国产天堂久久精品网 | 国产在线观看不卡 | 国精品人妻无码一区二区三区软件 | 欧洲色情大片啪啪免费观看 | 97国产精东麻豆人妻电影 | 国产一区二区三区成人久久片 | 日本黄色免费网址 | 久久久久久88色偷偷 | 丁香花五月 | 日韩一级视频免费观看 | 久久视频在线视频观看 99 | 97无码欧美熟妇人妻蜜 | 在线播放精品 | 国产成人久久婷婷精品流白浆 | 四房播播最新网址 | 3d动漫一区 | 久久福利一区 | 乱护士肉合集乱500篇 | 男人站影音先锋男人站 | 亚洲精品蜜桃AV久久久 | 古代荡女丫鬟高H辣文纯肉 古代高H啪肉NP文 | 国产精品久久久久久久午夜片 | 中国黄色网址 | 亚洲欧美视频一区二区 | 欧洲性xxxx| 日本亚洲精品无码专区国产 | 色久久综合视频本道88 | 日韩色小说 | 综合色就爱涩涩涩综合婷婷 | 国产高中生三级视频 | 亚洲xxxx18 | 四虎在线免费观看视频 | 日本一在线中文字幕天堂 | 色色成人网 | 亚瑟电影在线观看免费国语 | 日本无码熟妇人妻在线视频免费看 | 亚洲国产日韩精品一区二区三区 | 神马午夜福利线及电影 | 在线欧美日韩制服国产 | 男人的天堂AV亚洲一区2区 | A片无码AV看免费大片在线喝奶 | 四房色播电影 | 亚洲人成在线播放 | 天天久| 99re热 | AV天堂午夜精品一区 | 中文字幕乱码高清完整版 | 工口里番外番全彩无遮挡 | 一区二区三区不卡在线观看 | 伊人婷婷综合缴情亚洲五月 | 国产乱码精品一区二区三区四川人 | 丁香婷婷影院 | 久久精品视在线观看2 | 91资源在线播放 | AV夜夜躁狠狠躁日日躁 | 国产51社区精品视频资源 | 日本免费一区二区三区a区 日本免费一区二区久久人人澡 | 古装级a毛片免费观看 | 免费看污黄网站 | 亚洲热久久 | 久久免费观看视频 | 69精品在线 | 国产精品久久久久久搜索 | 极品少妇粉嫩小泬啪啪小说 | 欧美女同在线观看 | 91小视频在线 | 亚洲精品国产一区二区精华液 | 亚洲AV久久久久久久无码 | 影音先锋资源站av资源 | 国产目拍亚洲精品一区二区三区 | 国产成人av在线免播放观看 | 免费国产黄网站在线观看动图 | 亚洲精品爆乳一区二区H | 亚洲永久免费视频 | 97精品在线视频 | 波多野结衣在线看片 | 欧美网站黄 | 毛片A久久99亚洲欧美毛片 | 国产高清国内精品福利色噜噜 | 亚洲高清有码中文字 | 香蕉伊人影院在线观看 | 杨紫好深啊再用力一点 | 亚洲午夜精品A片久久W | 91精品三级在线观看播放 | 日本午夜高清视频 | 国产SUV精二区九色 国产SUV精二区69 | 国产精品亚洲二线在线播放 | jizzjizz国产精品久久 | 亚洲国产成人在人网站天堂 | 一起探恋爱综艺在线观看第七期 | 五月婷婷六月色 | 精品欧美亚洲韩国日本久久 | 久久亚洲精品国产露脸 | 欧美亚洲日韩高清无码 | 色即是空2字幕 | 日本三圾片在线观看 | 中文字幕一级片 | 日韩精品AV一区二区三区 | 亚洲精品18p | 91精品久久久久久久久久小网站 | 女人张开腿让男人桶爽免 | 日韩内射美女片在线观看网站 | 在线视频激情 | 天天爱天天做天天干 | 高强度辣爽文 全是肉NP | 宝贝看我是怎么吃你水蜜桃的视频 | 人人澡人人透人人爽 | 国产精品亚洲AV色欲一区二区三区 | 毛片在线观看地址 | 免费理论片高清在线观看 | 6色成人网 | 久久综合香蕉 | 91成人午夜在线精品 | 成人免费精品网站在线观看影片 | 97蜜桃网站 | 97香蕉| 妇女敕BBB搡BBBBBB搡 | 麻豆出品视频在线 | 激情综合网| 樱花草免费视频在线观看WWW | www免费视频 | 小草青青免费影视观看 | 免费又黄又爽A片免费看 | 三级国产在线 | 主播蜜汁丝袜精品自拍 | 午夜激情在线观看 | 蝌蚪久久窝 | 原神美女被超污app 越南护士毛茸茸性 | 91情侣视频 | 九九视频精品36线视频在线观看 | 久久香蕉影院 | 中文字幕 欧美精品 第1页 | 国产精品成人观看视频免费 | 美美哒免费高清影院在线观看直播 | 日本一本二本三区无码 | 国产在线看不卡一区二区 | 日本亚洲欧洲色情 | 欧美sss视频| 麻豆传播媒体2023最新网站 | jizzyou欧美| 五月婷婷激情第四季 | 婷婷丁香在线观看 | 人人爱人人看 | 国产精品久久久久久久毛片 | 日韩一卡2卡3卡4卡无卡免费视频 | 国语电影 | 真人插B免费视频播放 | 久久精品99国产精品日本 | 九九视频精品36线视频在线观看 | 欧美日本二区 | 国产欧美熟妇另类久久久 | 日韩国产无矿砖一线二线图 | 一个人看的视频WWW在线 | 成年女人色毛片免费 | 国产在线免| 成人A片产无码免费奶头小说 | 综合久久久久综合97色 | 久久久久久久岛国免费播放 | 亚洲精品久久久久久久久AV无码 | 国产不卡视频一区二区三区 | 欧美性A片又硬又粗又大暴力 | 久久aⅴ免费观看 | 久久91综合国产91久久精品 | 波多野在线 | 黄乱色伦短篇小说h | 又硬又粗进去好爽A片免费多人玩 | XL上司带翻译不打马赛 | 玖玖在线视频 | 按摩高潮A片一区二区三区 澳门永久av免费网站 | 麻花豆传媒剧在线MV免费版特色 | 九九影院免费还看视频 | 无码欧美毛片一区二区三在线视频 | 成人精品一区二区三区校园激情 | 九九精品视频在线 | 韩国理论片中文线播放最新 | 欧美野外疯狂做受XXXX高潮 | 色135综合网| 日韩经典中文字幕 | 97久久久亚洲综合久久88 | 亚洲精品一区二区绿巨人 | 亚洲视频自拍 | 久久好在线视频 | 韩国伦理电影在钱看线 | 亚洲精品久久久久一区二区 | 九九免费久久这里有精品23 | 亚洲经典自拍 | 国产美女视频一区二区二三区 | 性欧美精品videofree高清hd | 一本到亚洲网 | 亚洲伦理在线观看 | 色老头老太xxxxbbbb | 黄色三级毛片视频 | 日本亚洲精品无码专区国产 | 天美在线 | 中文字幕 日韩 人妻 无码 | 少妇高潮毛片免费看A片 | 闷骚影院 | 久久最新免费视频 | 亚洲A片一区日韩精品无码 亚洲H成年动漫在线观看不卡 | 国产福利麻豆精品一区 | 久久精品免费全国观看国产 | 欧美激情亚洲一区中文字幕 | 日本亚洲成人 | 亚洲国产天堂久久精品网 | 久久精品国产精品亚洲艾 | 麻豆文化传媒网站官网免费 | 精品国产福利一区二区在线 | 在线国产三级 | 狠狠狠色丁香婷婷综合久久俺 | 羞羞影院男女爽爽影院尤物 | 国产亚洲精品久久久久5区 国产亚洲精品久久久闺蜜 国产亚洲精品久久久999无毒 | 波多野结衣一二三区 | 国产目拍亚洲精品一区 | 激情啪啪精品一区二区 | A片试看120分钟做受视频在线 | 久久丁香视频 | 九一果冻传媒制片入口 | 师生H湿 1V1 师尊禁脔被迫含精入睡H | 综合激情区视频一区视频二区 | 激情综合网婷婷 | 国产精品国产三级国产普通话对白 | 国色天香AV在线观 | 黑人性受xxxx黑人xyx性爽 | 成 人 网 站免费观看 | 日本高清中文字二区不卡 | 一级黄色在线 | 欧美性影院 | 久久在精品线影院精品国产 | 免费看真人a一级毛片 | 亚洲欧美一区二区三区麻豆 | 一本三道a无线码一区v小说 | 国产这里有精品 | 色综合天天综一个色天天综合网 | 飞极速feijisu·6| 免费中文字幕囯产在线网站 | 受在寝室被多攻高H男男小说 | 日本色呦呦 | 国产三级级在线电影 | 亚洲熟女乱色综合一区小说 | 国产a国产 | 日本韩国欧美在线 | 天堂网2021天堂手机版丶 | 99re在线精品 | 黄色一区二区三区 | 日韩深夜福利视频 | 色哟哟在线观看免费高清大全 | 午夜DJ国产精华日本无码 | 天天躁天天狠天天透 | 国精产品一区二区三区 | 国产亚洲精品久久久久久国模美 | 香蕉伊人影院在线观看 | 精品国产一区二区三区久久影院 | 亚洲视频aaa | h网址在线观看 | 夜夜躁狠狠躁日日躁2024 | 中文字幕日韩在线观看 | 国产白拍 | 成人无码A片一区二区三区免 | 久久久xxx | 久久大香伊蕉在人线国产昨爱 | 色妞AV永久一区二区国产AV开 | 久久97久久97精品免视看秋霞 | 亚洲区色情区激情区小说 | 国产极品JK白丝玉足喷白浆 | 欧美一级日韩一级亚洲一级 | 99热影视| 久久97精品久久久久久清纯 | 天天射天天干天天 | 欧美区日韩区 | 五月天婷婷激情网 | 免费毛片软件 | 亚洲精品中文字幕不卡在线 | 在线视频 日本 | 日本一区二区高清免费不卡 | 性按摩视频xxx | 免费网站在线观看人数在哪里看的 | 久久久久免费精品国产 | 国产高清管线免费视频 | 国产网站免费 | 黄色在线免费观看网站 | 日韩a级一片 | 亚洲午夜未满十八勿入 | 野外xxx | 插的痛的视频一卡二卡三卡 | 欧美一区二区三区播放 | 亚洲欧美自拍另类图片色 | 尤物网站永久点击进入 | 最近中文字幕在线看免费完整版 | 国产乱对白精彩 | 扒开粉嫩的小缝喷出水 | 久久99精品久久久 | 总裁高H掹C纯肉小黄书 | 国产精品人妻无码99999 | 免费看污又色又爽又黄又脏小说 | 欧美在线精品一区二区在线观看 | 国精产品一区一区三区有限公司 | 国产又色又爽在线观看 | 久久国产精品99国产精 | 亚州日本乱码一区二区三区 | 宝贝看我是怎么吃你水蜜桃的视频 | 国产一区二区三区在线影院 | 国产激情无码激情A片软件 国产激情无码激情A片免费软件 | 综合丁香| 精品国产91 | 亚洲一级免费视频 | 丝袜诱惑在线视频 | 欧美变态杂交xxx | 抖音成长人版短视频安装 | 性欧美高清videosex | 久久久久免费精品国产小说 | 色综合久久久高清综合久久久 | 黑人欧美巨大xxxxx69 | 19国产精品麻豆免费观看 | 五月天婷婷在线观看视频 | 久久综合丁香 | 闺蜜放荡H肉辣文御书屋姜 贵州美女一级纯黄大片 | 久碰久 | 精品国产乱码久久久久久下载 | 在线你懂得 | 亚洲黄网视频 | 一炕四女被窝交换啪啪 | 啊轻点灬大JI巴又大又粗A片 | 国产91网址 | 精品免费国产一区二区三区四区五 | 亚洲精品一卡2卡三卡4卡5卡 | 女人下边被添全过程A片 | 亚洲AV无码无限在线观看不卡 | 乱码一卡二卡新区永久入口 | 西安润基投资控股有限公司 | 无码精品日本一区二区桃花岛 | 成人a毛片久久免费播放 | 午夜小视频免费观看 | 日本欧美不卡一区二区三区在线 | 黑人巨大 xxxxxxx | 国产电影一区二区三曲爱妃记 | 無码一区中文字幕少妇熟女网站 | 国产婷婷精品AV在线 | 色翁荡息肉欲系列小说 | 五月婷六月丁香 | 性欧美精品xxxx | 欧洲乱码卡一卡二 | 中文字幕人妻熟女在线 | 国产综合欧美区在线 | 黄视频网站观看 | 成人黄色免费网址 | 漂亮的丰年轻的继坶3在线观看 | AV亚洲产国偷V产偷V自拍 | 国产又猛又粗又爽的视频A片 | 欧美 亚洲 日韩 中文2019 | 欧美人xxxxxbbbb | 日本A片把舌头伸进粉嫩视频 | 波多野结衣在线一区二区 | 欧美高清视频在线高清观看 | 午夜精品视频在线 | 色爱区综合激情五月综合色 | 99日韩精品| 日本午夜精品一区二区三区电影 | 亚洲人成综合在线播放 | 亚洲天堂在线观看完整版 | 亚洲卡一卡二卡三乱码公司 | 无码免费人妻A片AAA毛片 | 精品在线播放 | 免费观看a毛片一区二区不卡 | 泷泽萝拉第一部快播 | 日韩欧美一区二区中文字幕 | 影音先锋av网站你懂得 | 黄色网址app| 95国产精品人妻无码久 | 国产真实野战在线视频 | WWW国产亚洲精品久久久 | 中日文字字幕乱码视频 | 成熟少妇AV片在线观看 | 亚洲 日本 欧美 中文幕 | 乱码一二三乱码又大又粗 | 黄sei网站有哪些 | 国产精品AV一区二区三区不卡蜜 | 五月婷婷激情五月 | 日本三级免费 | 天堂在线中文网 | 国产婷婷午夜精品无码A片 国产婷婷色综合AV蜜臀AV | 亚洲精品无码一区二区 | 亚洲AV国产国产久青草 | 国产色婷婷精品免费视频 | 添bbb免费观看高清视频 | 成 人 网 站在线 | 九九在线 | 日本三级电影在线看 | 伦理片2499电影 | 伊人久久中文字幕 | 欧美激情亚洲一区中文字幕 | 免费在线观看一区 | 久久伊人五月天 | 国产成人+亚洲欧洲 | 千涩网| 欧美日本亚洲国产一区二区 | 国产成人ay手机在线观看 | 亚洲欧洲国产成人综合一本 | 国产免费内射又粗又爽密桃视频 | 日韩欧美中| 欧美性A片又硬又粗又大暴力 | 国产亚洲精品成人久久网站 | 丁香花在线观看免费观看图片 | 免费日韩毛片 | 最近中文字幕国语免费完整 | 黄视频网站在线观看 | 欧美色妞网| 福利视频在线播放 | 最近韩国动漫免费观看视频 | 天天躁日日躁狠狠很躁 | 男男女女爽爽爽视频免费 | 男人天堂第七色 | 成人a毛片高清视频 | 亚洲熟伦熟女新五十路熟妇 | 日本在线观看不卡 | 一区毛片| 久久久精品3d动漫一区二区三区 | 国产免费不卡v片在线观看 国产美女一级做视频爱 | 很狠撸| 污视频下载 | 福利在线国产 | 国产成人综合视频 | 欧美视频导航 | 77快播| 日本护士xxxx在线播放 | 午夜伦理一yy4480影院 | 97SE亚洲国产综合自在线不卡 | 欧美日韩精品一区二区三区不卡 | 黄色污网站 | 激情小说在线观看 | 国产一区二区不卡亚洲涩情 | 老牛无码人妻精品1国产 | 国产资源在线观看 | 九九视频在线看精品 | 亚洲一区日韩一区欧美一区a | 97成人碰碰在线人妻少妇 | 国产精品剧情 | 欧美在线精品一区二区在线观看 | 亚洲日本欧美产综合在线 | 撞击着旗袍美妇的肉臀 | 亚洲欧美日本 | 五月婷婷之综合缴情 | 波野多结衣在线 | 日本久久综合视频 | 日日摸天天碰中文字幕 | 久久99九九国产免费看小说 | 欧美可以直接看的A片 | 四虎影视在线看免费完整版 | 日本欧美一区二区三区视频 | 伦理片97影视网 | 好屌草这里只有精品 | 影音先锋成人无码影院 | 日本高清视频免费看 | 日本一道人妻无码一区在线 | 国产亚洲区 | 国产免费观看黄A片又黄又硬小说 | 国产第一页浮力影院草草影视 | 五月天激情片 | 天天操夜夜嗨 | 亚洲A片一区日韩精品无码 亚洲H成年动漫在线观看不卡 | 成人亚洲欧美日韩在线观看 | 久久综合九色综合狠狠97 | 禁止的爱善良的小峓子3线国字 | 日本最新在线不卡免费视频 | 亚洲色无码A片一区二区红樱 | 久久受| 无人高清视频免费观看在线下载 | 最近韩国日本免费观看免费 | 一本色道亚洲精品久久 | 国产98在线 | 国产精品国产对白熟妇 | 性欧美video在线播放 | 亚洲国产艾杏在线观看 | 婷婷激情五月AV在线观看 | 亚洲一区二区三区视频 | 欧美性猛片AAAAAAA | 国产精品午夜免费观看网站 | 99久久无码一区人妻A黑国产馆 | 国产人妻熟女偷在线视频 | 日本肉肉口番工全彩动漫 | 日本一区三区二区最新 | 亚洲 欧美 制服 校园 动漫 | 天天插天天插 | 内射老阿姨1区2区3区4区 | 无码137片内射在线影院 | 99精品国产综合久久久久 | 在线观看网址入口2024 | 黑人两根一起强进 | 97丨九色丨国产人妻熟女 | 色婷综合 | 日本a级网站 | 国产成人精品一区二区三区影院 | 国产人妻人伦精品一区二区 | 2020精品极品国产色在线观看 | 成人亚洲色欲色一欲WWW | 成年看片永远免费 | 天天操夜夜操狠狠操 | 欧美精品亚洲精品 | 少妇又大又粗又硬啪啪 | 欧洲特级做A爰片久久毛片A片 | 日韩欧美中文字幕公布 | 九九九九在线精品免费视频 | 欧美播播 | 日韩大片在线永久免费观看网站 | 色婷婷久久啪啪一区二区 | 吕守备粗大进出黄蓉的秘密 | 樱花草视频WWW | 99久久免热在线观看6 | 有码一区 | 国产色情18一20岁片A片 | WWW国产亚洲精品久久久 | 亚洲国产精品免费观看 | 欧美va天堂va视频va在线 | 波多野结衣免费一区二区三区香蕉 | 亚洲粉嫩美白在线 | 97人伦影院A片在线观看 | 亚洲精品色情APP在线下载观看 | 欧美日韩高清不卡一区二区三区 | 久久97久久99久久综合 | 免费观看少妇全黄A片 | 免费午夜无码无码18禁无码影院 | 国产精品久久久AV久久久 | 成年电人电影免费网站 | 最近免费中文字幕大全高清10 | 成年人视频免费网站 | 夜色网址 | 亚洲午夜精品A片久久WWW软件 | 爱福利视频一区 | 久久99免费视频 | 性色免费视频 | 在线观看视频网站www色 | 又色又爽的无遮挡免费网址 | 2014天堂网 | 亚洲人精品亚洲人成在线 | 边做边爱完整版免费视频播放 | 成人AV无码一二二区视频免费看 | 国产jizzjizz视频免费看 | 美女祼体添鸡把图片 | 国产精品久久久久久日本一道 | 亚洲精品久久久久无码AV片软件 | 妞干网免费在线 | 美女翘臀白浆直流视频 | 日韩一区二区三区中文字幕 | 女人张开腿让男人桶免费网站 | 最新国产三级久久 | 国产精品国产成人国产三级 | 久热精品视频在线观看 | 亚洲国产日韩一区二区A片 亚洲国产日韩制服在线观看 | 最近中文字幕完整国语 | 国产精品永久免费视频观看 | 国产日产欧产美韩系列影片 | 最后的朋友结局 | 永久免费观看黄网站 | 六月丁香在线播放 | 久久大香香蕉国产免费网站 | 亚洲精品蜜桃久久久久久 | 色情 免费 视频在线观看 | 欧美视屏 | 成人网欧美亚洲影视图片 | 国产成人自产拍免费视频 | 请以你的名字呼唤我 电影 请以你的名字呼唤我 | 人人玩人人添人人澡欧美 | 黄色片网站在线观看 | 波多野结衣视频免费观看 | 国产精品2022最新在线观看 | 精品日产1区2卡三卡麻豆 | 国产亚洲玖玖玖在线观看 | 91网站免费看 | 秋霞论理片 | 亚洲熟女乱色一区二区三区 | 亚洲区激情区图片小说区 | 99久久免费看少妇高潮A片 | 黑人特黄AA完整性大片 | 双性将军粗壮H灌满怀孕 | 久久97精品久久久久久久不卡 | 久久精品66| 成年在线人免费视频视频 | 老司机午夜精品网站在线观看 | 中文字幕视频免费在线观看 | 黄色在线免费网站 | 黄色网免费看 | 日韩成人免费在线视频 | 香蕉大美女天天爱天天做 | 色老头综合网 | 亚洲国产成人久久精品动漫 | 国产三级不卡 | 少妇AV射精精品蜜桃专区 | 日日天干夜夜狠狠爱 | 欧美亚洲桃花综合 | 最新四虎影在线在永久观看 | WWW夜插内射视频网站 | 久久综合一区二区三区 | 国产又色又爽又免费的刺激软件 | av电影下| 亚洲精品久久久久久久蜜臀老牛 | 成人人观看的免费毛片 | 久久99国产精品一区二区 | 欧美AAAAAABBBBB| 国产在线精品二区李沁 | 公车疯狂揉肉蒂高潮H失禁动态图 | 开心色播站 | 色交网站 | 老司机福利在线视频 | 999精品国产| 成人做爰A片免费视频日本 成人做爰视频WWW网站 | 种地吧2在线观看 | 豪妇荡乳1一5潘金莲2在线 | 涩涩爱社区在线观看 | 国产做A爱片久久毛片A片高清 | 亚洲精品久久久久高潮 | 高清自拍亚洲精品二区 | 午夜精品久久久久久久久 | 中国xx爽69护士 | 97国产v欧美| 最新免费观看的电影 | 国产亚洲综合成人91精品 | 免费观看又色又爽又黄的忠诚 | 国产日韩亚洲精品视频 | 秋霞网在线伦理影片 | bbbbbbbbb毛片免费 | 欧美综合视频 | 性色国产成人久久久精品一区二区 | 欧美猛交XXX无码黑寡妇 | 我的yin荡女佳佳第18章 | 在线亚洲精品福利网址导航 | 国产精品视频在线观看 | 国产AV亚洲一区精午夜麻豆 | 亚洲精品伦理熟女国产一区二区 | 日本欧美国产精品第一页久久 | 日韩在线av免费视久久 | 午夜精品福利在线导航小视频 | 教官你的太大了芊芊h | 亚洲 日韩 国产 有码 不卡 | 色噜噜狠狠色综合久 | 日韩免费看 | 国产第一页在线视频 | 色天天综合色天天看 | 亚洲精品一区二区在线看片 | 最新在线黄色网址 | 成品大香煮伊在2024一区 | 长篇肉戏香艳完本小说排行榜 | 天天躁天天狠天天透 | 亚洲综合国产在不卡在线 | 91色老久久精品偷偷蜜臀 | 国产亚洲色婷婷久久精品99 | AV午夜午夜快憣免费观看 | 欧美性做爰又大又粗又长 | 波多野结衣三级视频 | 成人精品| 无码任你躁久久久久久久 | 亚洲色欲色欲202477小说 | 美女图片脱空一点不露 | 特级做A爰片毛片免费看108 | 免费看www网站入口 免费看v片 | 国精产品网曝黑料在线观看 | a免费网站 | AV国産精品毛片一区二区 | 男女毛片免费视频看 | 狠狠色噜噜狠狠狠888奇米 | 爱草网 | 久久久国产精品免费看 | 日本韩无专砖码高清 | 狠狠干夜夜 | 久久久综合香蕉尹人综合网 | 奇米777四色精品综合影院 | 99久久精品免费看国产高清 | 成人美女黄网站色大色费 | 我爱我色成人网 | 国产在线二区三区熟女A级 国产在线播放精品视频 | 影音先锋av色情撸啊撸 | 一级aaaaa毛片免费视频 | 精品久久久久久 | 国产日韩综合 | 福利视频在线4 | 久久都是精品 | 少妇高潮毛片免费看A片 | 疯狂揉小泬到失禁高潮在线 | 日本无码MV免费视频在线 | 欧美变态味孕交 | 夜夜躁狠狠躁日日躁2024 | 精品淑女少妇AV久久免费 | 天天精品| A片好大好紧好爽视频 | 窝窝午夜看片国产精品人体宴 | 免费视频国产在线观看网站 | 色资源二区在线视频 | 在线2018免费观看高清视频 | 久久国产偷| 亚洲黄色免费网站 | 精品人妻无码一区二区三区牛牛 | 91制片厂制作果冻传媒八夷 | 樱花草视频在线观看免费资源WWW | 一级毛片黄色 | 欧美性高清hd | 亚洲一级特黄 | 黄页网站视频 | 悠悠资源 | 免费视频国产在线观看 | 风韵饥渴少妇在线观看 | 国产精品久久久久久久 | 依欧美视频 | 欧日韩一区二区三区 |