超碰91资源站-超碰97豆花-超碰97人妻-超碰97人人干-超碰97人人香蕉-超碰97天天操-超碰97在线资源站-超碰97资源站共享-超碰97资源站总站-超碰aa在线91-超碰av操-超碰爱爱

半岛外围网上直营

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

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

概述:本文為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”。在這種情況下,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,也就意味著&ldquo;任何T類型都遵循Equatable協議”。

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@ke049m.cn


為你推薦

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


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
利記足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網上PM娛樂城盤口(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規雷火競技官方買球(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權威十大網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 權威188BET足球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規188BET足球大全(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 国产精品免费av片在线观看 | 91桃色午夜福利国产在线观看 | 丰满人妻熟妇乱又伦精品软件 | 国产成人涩涩涩视频在线观看 | 国产亚洲日韩在线 | 国产末成年毛片aⅴ在线 | 精品国产aⅴ一区二区三区 精品国产aⅴ一区二区三区4区 | 国产精品无码制服丝袜 | 国产精品国产三级传区网站 | 精品少妇人妻av无码专区不卡 | 国产成人综合精品 | 高潮国产精品一区二区喷水 | 国产精品成人av片免费看 | www夜片内射视频在观看视频 | 国产精品国产三级国产成人 | 91午夜精品久久久久精品 | 国产另类ts人 | 国产成人精选视频在线观看不卡 | 99久久久国产精品免费蜜臀 | 2025国产精品国产精华 | 囯产精品一区二区三区乱码 | 2025男人的天堂网 | 国产三级精品专区欧美激情福利 | 国产美女裸舞一区二区 | 国产日韩一区二区三区高清 | 国产综合精品婷婷丁香久久 | 18禁超污无遮挡无码网址 | 国产白丝jk被疯狂输出免费 | 国产精品午夜男女大片免费看 | 国产成a人片在线观看视频 国产成a人片在线观看视频99 | 99久久国产综合 | 国产精品国产精品国产专区不卡 | 高清精品一区 | 国产精品国产三级传区网站 | 国产成人综合久久精品免费 | 国产成人免费视频播放在线观看 | 91麻豆国| 丰满熟女人妻一区二区三 | 韩国精品一区二区三区无码视 | 国产成人精品97 | 精品久久久久久久一区二区伦 | 国产精品国产主播在线观看 | 2025最新国产在线人成 | 国产午夜理论不卡在线观 | 国产亚洲综合专区在线 | 动漫美女h黄动漫在线观看 动漫美女爆羞羞动漫 | 国产午夜草莓视频在线观看 | 国产女装大佬在线看视频 | av在线播放免费无码 | 2025年卡一卡二卡三精品 | 国产美女流白浆 | 国产精品白浆在线观看无码专区 | 91精品福利在线观看 | 精品久久久久久中文墓无码 | 国产精品成熟老女人视频 | 国产一区二区午夜福利在线观看 | 18禁成人黄网站免 | 国产超碰人人爽人人做 | 国产午夜福利精品一区二区 | 国产成人aⅴ片在线观看免费 | 国产成人激情五月 | 成人免费观看高清视频a斤 成人免费观看国产高清 | 国产真人无码作爱视频免费95 | 国产在线第一浮力影院 | 91久国产在线观看 | 东京热加勒比无码少妇 | 国产一区二区欧美丝袜 | 国产欧美日韩综合精品一级a | 国产欧美日韩综合一区在线 | 国产91蜜芽在线观看 | 国产高潮美女出白浆在线观看 | 国产亚洲综合色就色 | 国产91成人免费网站 | 国产精品户露av在线户外直播 | 国产成人无码精品久久小说 | 国产美女极品免费视频 | 国产三级片一级在线观看 | av一区二区三区传媒 | 成人一区在线观看 | 国产午夜亚洲精品不卡在线观看 | 国偷自产av一区二区三区吞精 | 国产高清无码黄片亚洲大尺度视频 | 国产成人在线视频观看 | av无码久久久久久不卡网站 | 国产成人高清亚洲 | 国产美女爽到喷出水来视频 | 国产高潮流白浆免费视频 | 国产成人精品午夜福利在线观看 | 国产成人免费片在线视频观看 | 国产成人一区二区三区免费视频 | 国产自产免费精品一区 | 国产sm调教折磨视频失禁 | 国产成人熟女激情视频 | 国产一区二区在线观看免费 | 国自产在线精 | 精品国产品对白在线 | 国产亚洲欧美日韩亚洲中文色 | 国产成人精品亚洲一区二区三区 | 国产对白叫床清晰在线播放中 | 国产精品毛片在线完整版的 | 国产高清一级毛片在线 | 91熟女一区二区三区蜜桃 | 国产精品十八禁一区二区三区 | 国产免费午夜a无码v视频 | 高清a无码在线观看 | 狠狠色婷婷久久一区二区三区 | 国产成人无码www免费视频在线 | 国产午夜精品福利 | 国产孕妇喷水视频在线播放 | 国产激情一区二区三区成人免费 | 国产精品嫩草影院入口一二三 | 国产一区二区三区在线观看免费 | 国产成人综合亚洲av小说 | 成人精品在线免费观看 | 国产午夜男女 | 99久久国产亚洲综合精品 | 国产精品无码专区av在线播 | 国产午夜不卡av免费 | 国内精品乱码卡一卡2卡三卡 | av免费在线观看的网址 | 精品少妇爆乳无码aⅴ区蜜臀av | 97人妻无码一区二区精品免费 | 国产交换精品一区二区三区 | 国产高清无码精油按摩 | 国产亚洲欧美在线一区二区 | 国产99久久九九精品无码动漫 | 成人3dh动漫在线播 成人3d动漫一区二 成人3d动漫在线观看 | 精品少妇爆乳无码aⅴ区蜜臀av | 国产黄色视频 | 精品国产毛片一区二区无码 | 国产无套精品一区二区三区 | 国产成人a亚洲精v品无码 | 99精品精品综合久久精品 | 国产精品亚洲四区在线观看 | 国产日韩精品无码区免费专区国产 | 91精品国产免费久久蜜桃 | 国产麻花豆剧传媒 | 国产自无码视频在线观看手机 | 国产主播勾搭在线观看 | 99久久精品无码免费视频播放 | 国产午夜福利短视频在线观看 | 国产妓女一线在 | 国产色午夜婷婷一区二区三区 | 国产精品高潮呻吟88av | 国产精品视频一区二区三区w | 精品国产日韩一区2区3区 | 91高清国内自产精品无码 | 国产一区欧美二区影视播放 | 国产一区二区影视 | 国产精品人人爽人人做我的可爱 | 国产福利片 | 国模私拍一区二区三区 | 国产亚洲大尺度无码无码专线 | 不卡无码在线免费 | 91精品国产成人网在线观看 | 99精品国产综合久久久久五月 | 丰满人妻精品一区二区 | 国精品一区二区三区免费观看 | av午夜片在线观看 | 国产一区在线观看免费 | 高清欧美日韩一区二区三区在线 | 黑人无码在线精品视频 | 国产av无码区 | av无码小缝喷白 | 国产一区二区三区免费看 | 国产在线精品一区 | 成人免费一区二区三区视频软件 | 国产午夜精品一区二区三区播放 | 国产aⅴ精品一区二区三区久久 | 国产一区二区三区在线播放 | 国产91丝袜在线播放 | 国产成人综合亚洲av第一页 | 丰满少妇三级全黄 | 国产一区二区精品尤物 | 精品国产一区二区三区免费91 | 91精品一区二区三区久久久久 | 国产一区二区寻花 | 国产精品原创不卡在线 | 精品亚洲成a人片在线观看 精品亚洲成a人片在线观看少妇 | 97人妻无码免费视频一区 | 18禁成人黄网站免 | 黄色一区二区三区在线观看 | 福利精品一区二区三区久久久久 | 国产另类日韩欧美亚洲 | 国产91精品久久久久久久 | 91精品人妻一区一区三区 | 国产精品日韩av在线播放 | 国产精品成人久久电影 | 国产a国产片高清 | 国产精品日韩在线制服丝袜 | 99久久久久国产精品免费 | 国产精品无码av片在线观看播 | 成年女人粗暴毛片免费观看 | 国产精品蜜臀久久av丁香婷婷 | 国产妇女馒头高清泬 | 国产精品丝袜亚洲熟女 | 国产精品亚洲码精品 | 国产精品1024在线永久免费 | 国产无码av | 国产成人啪精品免费观看 | 国产一区自拍视频 | 国产高清一级黄色片 | 精品高朝久久久久9999 | 国产在线超清日本一本 | 18禁免费观看网站 | 国产在线观看精品一区二区三区91 | 国产爆乳无码视频在线观看3 | 成人黄色网站18 | 91露脸的极品国产系列高清 | 国产精品卡1卡2卡3 国产精品卡通动漫蜜臀av | 国产成人午夜福利高清在线观看 | 国产成人亚洲精品无码h在线 | 国产精品狼人久久久久影院 | 911午夜福利精品 | 91国偷自产一区二区三区换脸 | 成人免费毛片一区二区三区 | 国产日韩午夜三级无码专区直播 | 变态另类国 | 国产美女一区三区在线观看 | 国产av午夜精品一区 | 国产韩国精品一区二区三区 | 国产精品精品国 | 国产精品一区久久 | 国产成人精品视频一区二区不卡 | 91精品自拍视频在线观看 | 92成人午夜福利一区二区 | 国产成人乱色伦区 | 2025亚洲中文字幕在线 | 国产巨胸爆乳裸体免费视频 | av五月天| 国产v一区二区三区色欲 | 91福利在线 | 国产日韩aⅴ无码一区二区 国产日韩aⅴ无码一区二区三区 | 精品妓女久久久久亚洲中文 | 国产成人亚洲精品在线观看 | 国产偷伦视频 | 92午夜福利极品少妇久久一区 | 国产原创中文无码精品视频 | 成人免费a级毛片 | 国产成人a亚洲精v品无码 | 成人国产三级精品 | 国产成人免费高潮激情视频 | 国产经典在线观看一区 | 国产成人精品高清国产三级 | 国产成人18黄网站免费 | 91福利视频网站主页 | 国自产精品手机在线 | 国产自美女在线精品尤物 | 国产精品蜜臀在线观看 | 国产精品线在线精品 | 国产做无码视频在线观看 | 国内外无码视频精品在 | 丰满人妻销魂娇喘呻吟 | 国产精品va在线观看浪潮 | 国产末成年av一区二区三区 | 国模和精品嫩模 | 顶级欧美熟妇高潮xxxxx | 国产精品无码国模私拍视频 | 国产精品一区二区三区污 | 91国产| 丰满爆乳一区二区三区 | 国产成人毛片精品不卡在线 | 高潮一区二区三区视频在线观看 | 国产一级毛片大陆 | 国产精品+日韩精品+在线播放 | 精品一区二区三区久久久久网站 | www国产精品内射熟女 | 国产一级毛片无码aaaaaa看 | 91精品成人a在线观看 | 99亚洲国产精品色一区二区三 | 成人h动漫在线播放本动漫 成人h精品动漫在线 | 国产午夜无码片在线观看影视 | 国产精品无码亚洲精品蜜桃传媒 | 成人大黄全免费网站 | 99久久最新视频免费观看 | 国产高清乱伦综合 | 国产午夜精品久久精品电影 | 国产精品一区电影 | 91亚洲午夜精品久久久久久一区 | 国产麻豆一精品一av一免费软件 | 国产成人精品久久综合 | 国产色视频在线观看免费 | 国产v一区二区久久久 | 国产白丝在线 | 成人中文字幕在线 | 国产高清美女一级a毛片久久w | 国产熟睡乱子伦午夜视频网 | 国产精品无码不卡一 | 国产真人无码作爱视频免费95 | 成人a级毛片免费观看av一区 | av午夜片无码区在线 | 国产人妻人伦精品无码.麻豆 | 精品视频一区二区三区中文字幕 | av片在线观看 | 国产欧美日韩一区二区加勒 | 99久久久国产精品免费播放器 | 国产91高潮流白浆在线播放 | 国产自偷亚洲精 | 国产爆乳无码视频在线观看3 | 国产精品无码一本二本三本色 | av无码导航 | 国产在线精品福利91啪 | 岛国少妇精品久久中文字幕 | 91热久久免费频精品黑人99 | 国产成人v大片在线观 | 国产精品三级在线观看无码 | 成人av在线一区二区三区四区 | 国产精品国产精品专区不卡 | 国产午夜亚洲精品理论片不卡 | 2025精品国产自在现线官网 | 国产亚洲精久久久久 | 国产91香蕉在线精品 | 国产丝袜在线观看 | 国产高潮国产高潮久久久 | 91极品18 | 国产成人精品在线观看 | 国产成人免费高清 | 国产精品成人精品天天看视频 | 国产成人久久av一区二区 | 国产无码啪啪视 | 国产精品爆乳奶水无码视频免费 | 丰满人妻被中出中文字幕 | 国产成人精品无码一区二 | 国产欧美日本一区二区三区免费 | 国产午夜福利精品在线观看不卡 | 国产水蜜桃视频在线 | 国产对白国语对白 | 国产欧美999日本黄页在线 | 调教美女久久国产 | 国产成人综合久久免费精品 | 国产成人激情一区二区视频 | 国内一国产农村妇女一级毛片 | 国产午夜福利视频在线观看 | a级午夜毛片免费一区二区 a级一级 | 高潮毛片无遮挡 | 国产午夜麻豆影院在线观看 | 精品秘无码一区二区三区老师 | 国产精品va在线观看浪潮 | 国产成a人亚洲精品v品无码 | 91精品国产乱码在线观看 | 国产成人午夜片在线观看 | 国产精品亚洲色一色 | 国产精品亚洲一区二区免费 | 国产a级毛片久久久精品毛 国产a级毛片久久久精品毛片 | 交换国产精品视频一区 | 福利一区在线观看 | 国产欧美另类久久久精品丝瓜 | 国产精品福利电影 | 高朝久久久久久久久久 | 国产国产久热这里只有精品 | 国产高清无码在线一区二区 | 91av视频在线 | 国产传媒19精品免费1区2 | 成人日产国产av | 国产激情一区二区三区不卡 | 1024在线观看国产天堂 | 国内自产视频在线观看 | 国产系列欧美系列日韩系列在线 | 国产成人爆乳在线视频播放 | 精品97人妻无码中文永久在线 | 精品国产亚洲av麻豆尤物 | 国产精品免费一级在线观看 | 国产亚洲欧美日韩在线天堂区 | 国产成人特级毛片无码视频二 | 国产精品福利自产拍 | 国产精品一区二区三免费99精 | 国产成a人亚洲精v品无码不卡 | 国产午夜精品福利在线 | 国产精品一香蕉国产线看观看 | 国产精品视频一区二区三区 | 国产精品亚洲va | 国产精品一区二区99久久精品 | 成人国产亚洲欧美一区 | 国产传媒视 | 高清国产一级精品毛片基地 | 国产三级片午夜大陆 | 国产自产视频在线观看香蕉 | 91精品国产成人网在线观看 | 国产在线无码制服丝袜无码 | 国产精品无码无卡 | 国产成人无码a区在线观看导航 | 高清无码一区二区在线观看 | 国产美女极度色诱视频ww | 高清无码黄色视频在线观看 | 国产妇女馒头高清 | 国产真实自在自线 | 国产真人无码免费视频 | 国产成人一区二区三区app | 国产日韩精品视频无码 | 国产精品毛片在线更新 | 国产亚洲欧美一区二区三区在 | 国产高清dvd| 国产超碰人人做人人 | 国产麻豆精品久久久 | 国产一区视频在线播放 | 囯产精品视频一区二区三区99 | 国产精品va在线播放我和闺蜜 | 国产高清福利91成人 | 成人免费毛片一区二区三区 | 国产精品黄色网站一级大片手机 | 国产成人亚综合91精品首页 | 韩国三级激情片在线观看 | 国产在线观看av一 | 高清无码国产免费片 | 国产午夜精品美女视频露脸 | 精品无码久久久久久国产 | 国产精品视频一区二区三区不 | 国产三级野外直播在线 | 国产小视频你懂的在线欧美 | 精品国模一区二 | 国产成人免费无码视频在线 | 91高清视频在线观看 | 国产精品日韩一区二区三区 | 精品国产一区二区三区日韩 | 2025精品国偷自产免费观看 | a级在线中文字幕在线 | 国产亚洲日韩欧美不卡成人 | 国产精品白浆无码流出视频 | 国产精品区网 | 国产亚洲日韩在线播放人成 | 国产成人av无码在线 | 91久久国产自产拍夜夜嗨 | 国产三级精品久久三级国专区 | 国产成人免费ā片在线观看 | 国产精品一二三四级电影 | 精品人妻无码专区在线无广告 | 97人妻在线视频观看 | 加勒比东京热无码中文字幕 | 国产美女久久久久久久久久久 | www国产成人免费观看视频 | 爆乳女神少妇精品一区 | 国产精品原创巨作av在线 | 精品国产免费观看久久久 | 国产尤物一区在线不卡 | 韩国美女爽快一级毛片免费观看 | 91精品三级在线观看播放 | 国产做爰一区二区 | 91精品国产高清91久久久久 | 97人人添人澡人人爽超碰 | 国产精品丝袜无码不卡视频 | 国产黄在线观看免费观看不卡 | 91精品欧美激情在线播放 | 国产午夜在线观看免费 | a级日本乱理伦片免费入口 a级日本乱理伦片免费入口: | 国产精品无码一区二区久日韩亚 | 国产经典青青青手机视频 | 国产黄又粗遮挡免费视频 | 国产成人亚洲精品无码青青草原 | av站天堂资源网 | 91麻豆精品国产一区色欲 | 国产一本通av在线正在播放 | 国产va无码人在线观看天堂 | 99久久国产精品欧美蜜芽 | 国产熟女一区二区三区五月婷 | 国产偷窥真人视频在线观看 | av无码精品久久不卡网站 | 国产不卡福利片在线观看浪潮 | 福利一区二区视频 | 99久久国产精品免费一区二区 | 国产成人精品无码一区二区 | 国产精品九九在线播放麻豆 | 国产精品夜夜春夜夜爽久久 | 国产一区二区三区精品网站免费 | 国产日韩一区二区不卡视频 | 国产一区二区三区视频网站 | 国产成人无码a在线观 | 国产一区二区三区电影 | 成年人手机版三级片电影免费观看正 | 国产福利精品 | 国产精品v片在线观看 | 国产一区在线看 | 国产精品日本免费视频 | 国产三级在线观看免费播放 | 91在线国偷自产一区国产永久 | 国产熟女一区二区三区浪潮97 | 国产极品精品免费视频久久 | 国产欧美精品一区二区三区涩涩 | 国产成人综合久久精品推下载 | 国产精品三级国产电影 | 18禁黄污吃奶免费看网站 | 国产自产亚洲精品国产 | 国产成人无码aa精品一区91 | 国产成人精品999在线观看 | 国产精品无码无片在线观看3d | 精品国产欧美一区二区三区成人 | 高清无码在线观看了 | 成人午夜精品久久久久久久秋霞 | 国产精品1024在线永久免费 | 国产精品另类激情久久久免 | 国产欧美日韩制服 | 国产午夜亚洲精品理论片不卡 | 国产三级电影 | 高潮喷浆视频在线播放 | 99久久精品免费观看国产 | 激性爽啪啪一二三区 | 国产精品欧美日韩在线一区 | 国产v亚洲v天堂a无码久久 | 东京无码熟妇人妻av在线网址 | 成人亚洲人在线播放av | 成人精品一区二区不卡视频 | 精品国产一区二区三区v | 国产高清无码性爱大片 | 国产一级毛片无码视频中字 | 成人区人妻精品一区二区不卡麻豆 | 18禁黄无遮挡免费网站动漫 | 国产午夜高潮熟女精品 | 成人三级精品视频在线观看 | 国产超碰人人做人人爱电影 | 丰满的少妇69式视频在线观看 | 国产精品欧美亚洲韩国日本99 | 动漫av成人无码精品网站 | 国产涩涩视频在线观看 | 国产毛片粗话对白 | 波多野结衣高清中文在线 | 91久久久精品无码一区二 | 国产色视频一区二区三区四区 | 国产综合成色在线视频 | 韩国少妇激三级做爰在线观看 | 国产成人精品视频一区 | 国产盗摄一区二区欧美精品 | 1000部啪啪未满十八勿入 | 精品外国呦系列在线观看 | 国产精品免费视频一区二区三区 | 91久久老司机福利精品网 | 国产不卡的一区二区三区四区 | 国产精品va在线观看丝瓜影院 | av无码国产在线观看岛国 | 92午夜福利影院一区二区三 | 国产国语精品对白无码视频 | 国产成人综合亚洲亚洲国产第一页 | 精品国产一区二区三区久久久81 | 国产无码综合一区二区 | 国产高清无套内谢免费 | 国产丝袜精品一区二区在线观看 | 国产成人久久一区二区不卡三区 | 精品丝袜国产自在线拍av | 高清成人一区二区三区 | 国产欧美日韩在线在线播放 | 91精品福利资源在线观看 | 国产在线制服丝袜国产 | 91久久久久新精品 | av资源免费 | 91国自产精品中文字幕亚洲 | 国产无码综合 | 国产偷窥澡堂在 | 国产色精品vr一区二区 | 国产美女精品网站在线看 | 国产91精品高清一区二区三区 | 91久久国产自产拍夜夜嗨 | 国产高清美女**毛片 | 福利一区视频 | 国产精品系列一区二区三区 | 国产精品丝袜自慰在线观看 | 成人免费无码成人影院日韩 | 国产sm重味一区二 | 国产精品福利在线观看 | 国产一区在线主播中文 | 国产精品视频无码一区二区免 | 国产福利姬精品福利 | 成人无遮挡裸免费视频在线观看 | 成人区免费aⅴ片在线观看 成人区人妻 | 韩国免费一级a一片在线播放 | 91人妻无码精品一区二区三区 | 精品九九99久久在免费线 | 国产二区视频在线观看 | 高潮喷水波多野结衣在线观看 | 国产精品精品自在线拍 | 丰满人妻系列无码专区 | 国产成人女人在线观看 | 91精品无码人妻在线 | 国产精品国产三级在线专区 | 国产精品v毛片免费软件 | av在线免费网站 | 91久久老司机福利精品网 | 国产一区二区三区免费看 | 国产精品白浆一区二区亚洲 | 91丝袜在线观看亚洲 | 国产成人香蕉久久久久 | 囯产精品高清三级一区 | 69视频在线观看 | 成人精品欧美一区二区三区 | 加勒比hezyo无码专区 | av毛片无码中文字幕不卡 | 成人无码激情视频在线观看 | 国产亚洲欧美在线观看 | 国产v综合v亚洲欧美大天堂 | 91麻豆国产高清产精品第一页 | 99久久精品免费观看区一 | 国产一级毛片内射年月直播 | 99精品免视看 | 国产成人免费av片在线观看 | 国产精品影片在线观看 | 精品无码在线看片 | 国产精品午夜小视频观看 | 成人综合国内精品久 | 国产精品久久久久久人妻黑料 | 黑色丝袜秘书夹住巨龙摩擦 | 国产一区二区精品在线观看 | 国产成人av一区二区三区 | 国产精品制服丝袜 | 国产aⅴ一区二区三区精品 国产av不卡日韩 | 国产亚洲综合一区二区无码 | 国产91av在| 91无码人妻丰满熟妇区五十路 | 国产日韩欧美精品先锋 | 国产精品无码无卡无需播放器 | 精品国产高清免费第一区二区三区 | 成年无码av片大全在线播放 | 成人综合在线视频免费观看 | 国产自国产自愉自愉免费 | 成人国产精品一区二区网站公司 | 国产午夜精品无码免费不卡影院 | 国产精品视频色尤物yw | 国产白领诱惑在线观看 | 高清一区二区三区免费视频 | 2025国产在线观看 | 成人亚洲欧美日韩在线 | 精品无码久久久久国产动漫3 | 精品一区二区av电影 | 国产欧美a级成人 | 国产高清在线精品一区二区 | 福利视频网站导航 | 精品无码欧美一区二区三区不卡 | 国产中文欧美 | 国产韩国欧美日本在线 | 成人片黄色大片 | 99久久精品日本一区二区免费 | 国产一区二区精品丝袜 | 2025亚洲韩国精品乱码 | av区无码字幕中文色 | 国产午夜无码精品免费看秒播 | 国产91精品看黄网站在线观看 | 国产精品一级二级三级视频 | 国产成人精品免高潮在线观看 | 国产尤物在线观看不卡 | 国产精品一级毛片不卡视 | 国产大片中文字幕在线观看 | 国产毛片一级在线 | 1000部未满十八禁止观看 | 国产三级精品视频 | 91福利专区| 国产无码一区二区 | 国产亚洲日韩欧美在线 | 国产精品影片在线观看 | 国产涩涩视频在线观看 | 国产黄页免费网站在线 | 97人妻免费线观看2025 | 国产91精品看黄网站 | 国产毛片av一区二区三区 | 国产不卡在线观看激情综合网婷婷 | 国产精品午夜福利在线观看地址 | 91精品国产自产在线啪免费 | 国产一区高清视频 | 国产福利一区二区精品免费 | 国产精品伦理在线 | 国产福利永久不卡在线观看 | 国自产在线精品 | 精品线一区二区三区免费看 | 国产在线观看一级 | 18禁午夜成人影院在线看 | 精品国产午夜一区二区三区 | 国产亚洲曝欧美曝妖精品 | 国产亚洲日韩在线人成 | 91偷拍一区二区三区精品 | 国产精品日韩无码一区二区 | 国产91艳遇在线观看 | 国产精品成人无码视频 | av老司机av天堂 | 精品一区二区三区波多野结衣电影 | 国产成a人片在线观看网站 国产成a人亚洲精ⅴ品无码性色 | hezyo加勒比久久爱综合 | 国产美女一级性大黄片 | 国产自在自线精品午夜视频 | 精品无码v免费 | 国产在线精品观看 | 99久久精品无码免费视频播放 | 国产精品秘麻豆免费版热议不断 | 国产人妻人伦精品1国产 | 国产自在现偷国产精品一区二区 | 高潮抽搐白浆视频在线观看 | 国产不卡视频在线播放 | 国产免费无码午夜福利电影 | 国产白嫩护士在线播放 | 国产精品一区二区黑人巨 | av午夜福利不 | 国产麻豆精品高清在线播放详情介绍 | 国产精品久久久久久 | 97人人添人澡人人爽超碰 | 18禁美女黄网站色大片免费看下 | 国产伊人明星在线观看 | 国产sm女在线调教视频 | 69国产精品成人无码视频色 | 国产av宗合影院 | 国产麻豆精品免费视频 | 精品美女视频免费直播 | 国产成人无码电影在线观看 | 国产精品女人呻吟在线观看 | 国产成人精品亚洲一区二区三区 | 国产美女全黄a一级视 | av在线中文观看 | 成人免费又黄又爽视频 | 成人区人妻精品一区二区不卡网 | 国产一区二区免费伦理鲁丝片 | 国产麻豆一区二区三区精品视频 | 91精品福利资源 | 国产无码专区精品 | 国产av无码 | 国产黄色毛片久久久 | h无码精品动 | 国产911视频在线 | 国产成人亚洲精品96 | 国产v片在线观看精品亚洲 国产v日本v欧美v一二三四区 | 国产精品国产三级国产专区5o | 国产精品亚洲一区二区免费 | 波多野结衣高清一区二区三区 | 国产麻豆剧传媒精品国产v 国产麻豆剧传媒精品国产v精品 | 成人国产精品视频 | 国产成人精品视频一区二区不卡 | 国产精品人成在线观看 | 国产麻豆国精精品久久毛片 | 国产自产在线观 | 国产成人女人毛片视频在线 | 精品久久久无码人妻中文字幕 | 国产v一区二区三区无码 | 国产高清在线精品一区app | 国产精品视频第一页 | 成人午夜视频精品一区 | 国产一卡2卡3卡四卡 | 国产在线精品国自产拍影院 | 国产精品毛片一区二区三 | 国产脚交视频在线观看 | 国产一区二区三区免费大片天美 | 国产亚洲一区二区三区啪 | 国产偷情久久久精品专区 | 国产一区二三区好的精华液 | 成人国产欧美精品一区 | 成人无码视频在线观看网站 | 成人无码h免费动漫在线观看 | 高清成年美女黄网站免费大全 | 国产无码操逼喷水 | 精品系列无码一区二区三区 | 国产超薄肉丝袜在线播放 | 精品无码免费专区毛片 | 国产动漫一区二区三区在线观看 | 国产成人综合精品亚洲 | 国产精品无码免费播放 | 91制片国产自产在线观看 | 国产91久久九九免费精品无码 | 国产成人无码精品午夜福利a | 国产成人久久精品二三区无码 | 精品无码国产一区 | 国产精品无码久久久久久蜜臀a | 国产爆乳美女娇喘呻吟 | 国产麻豆视频网站 | 精品无码国产一区二区三区51 | 国产精品国偷自产在线 | 2025国产精品自在自线 | 91探花国产综合在线精 | 成人欧美一区二区三区黑人免费 | 国产美女久久久久久久久久久 | 1区2区3区产品乱码免费 | 国产美女啪啪视频 | 激情内射亚洲一区二区三区 | 91精品最新国内在线播放 | 国产欧美亚洲日本网站 | 91在线视频| 69视频福利一区二区三区 | 2025国产成人福利精品视频 | 国产精品一区二区三区剧情片 | 国产免费人成在线视频视频 | 99久久精品无码免费视频播放 | 成人精品一区二区久久久 | 国产经典不卡的在线视频 | 国产成人久久精品麻豆一区 | 精品国产三级在线 | 国产白嫩美女在线观看 | 精品无码成人网站久久久久久 | 精品推荐制服丝袜第一页 | 精品无码制服丝袜日韩视频 | 91成人精品爽啪在线观看 | 国外b站刺激战场直播app | 精品一区二区三区波多野结衣 | 国产国拍亚洲精品无码 | 99国产欧美久久久精品蜜芽 | 成人精品无码一区二区 | 果冻国产成人av高清在线 | 国产一区二区三区乱码 | 69成品人视频免费看手机最新 | 精品无码一区二区三区aⅴ 精品无码一区二区三区av | 91桃色午夜福利国产在线观看 | 国产一区精品在线观看 | 3d动漫精品专区久久 | 国产午夜a理论毛片在线影院 | 91热久久免费频精品无码69 | 高潮湖久久久久久久久 | 国产精品白丝jk黑袜喷水视 | 国产女主播在线观看五月 | 成人va在线一区二区三区四区 | 国产经典自拍视频在 |