日韩福利首页在线观看网站-日韩福利免费网站视频在线-日韩福利局二区视频-日韩福利-日韩二区在线-日韩二区三区四区-日韩二区三-日韩电影中文字幕

半岛外围网上直营

Swift編程語言中文教程(二十一):Swift協議

原創|使用教程|編輯:龔雪|2014-06-19 09:33:07.000|閱讀 4525 次

概述:本文為Swift編程語言中文教程第二十一部分,講解協議(Protocol),內容包括:Swift協議的語法(Protocol Syntax)、屬性要求(Property Requirements)、協議類型(Protocols as Types)、協議的繼承(Protocol Inheritance)等。Swift是蘋果公司在WWDC2014發布的一門編程語言,與Objective-C相比,對學習新手比較友好。慧都控件網根據官方教程以及網上中文資源整理了Swift編程語言中文教程,希望幫助想要學習Swift的朋友,由于技術有限,可能有不足的地方,希望大家指正。

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

相關鏈接:

本頁包含內容:

Protocol(協議)用于統一方法和屬性的名稱,而不實現任何功能。協議能夠被類,枚舉,結構體實現,滿足協議要求的類,枚舉,結構體被稱為協議的遵循者。

遵循者需要提供協議指定的成員,如屬性,方法,操作符,下標等。

協議的語法

協議的定義與類,結構體,枚舉的定義非常相似,如下所示:

protocol SomeProtocol {
    // 協議內容
}

在類,結構體,枚舉的名稱后加上協議名稱,中間以冒號:分隔即可實現協議;實現多個協議時,各協議之間用逗號,分隔,如下所示:

struct SomeStructure: FirstProtocol, AnotherProtocol {
    // 結構體內容
}

當某個類含有父類的同時并實現了協議,應當把父類放在所有的協議之前,如下所示:

class SomeClass: SomeSuperClass, FirstProtocol, AnotherProtocol {
    // 類的內容
}

屬性要求

協議能夠要求其遵循者必須含有一些特定名稱和類型的實例屬性(instance property)或類屬性 (type property),也能夠要求屬性具有(設置權限)settable 和(訪問權限)gettable,但它不要求屬性是存儲型屬性(stored property)還是計算型屬性(calculate property)。

如果協議要求屬性具有設置權限和訪問權限,那常量存儲型屬性或者只讀計算型屬性都無法滿足此要求。如果協議只要求屬性具有訪問權限,那任何類型的屬性都可以滿足此要求,無論這些屬性是否具有設置權限。

通常前置var關鍵字將屬性聲明為變量。在屬性聲明后寫上{ get set }表示屬性為可讀寫的。{ get }用來表示屬性為可讀的。即使你為可讀的屬性實現了setter方法,它也不會出錯。

protocol SomeProtocol {
    var musBeSettable : Int { get set }
    var doesNotNeedToBeSettable: Int { get }
}

在協議中定義類屬性 (type property)時使用class前綴關鍵字,即使在結構體或者枚舉中類屬性是要求使用static前綴關鍵字:

protocol AnotherProtocol {
    class var someTypeProperty: Int { get set }
}

protocol FullyNamed {
    var fullName: String { get }
}

FullyNamed協議含有fullName屬性。因此其遵循者必須含有一個名為fullName,類型為String的可讀屬性。

struct Person: FullyNamed{
    var fullName: String
}
let john = Person(fullName: "John Appleseed")
//john.fullName 為 "John Appleseed" 

Person結構體含有一個名為fullName的存儲型屬性,完整的遵循了協議。(若協議未被完整遵循,編譯時則會報錯)。

如下所示,Startship類遵循了FullyNamed協議:

class Starship: FullyNamed {
    var prefix: String?
    var name: String
    init(name: String, prefix: String? = nil ) {
        self.anme = name
        self.prefix = prefix
    }
    var fullName: String {
    return (prefix ? prefix ! + " " : " ") + name
    }
}
var ncc1701 = Starship(name: "Enterprise", prefix: "USS")
// ncc1701.fullName == "USS Enterprise"

Starship類將fullName實現為可讀的計算型屬性。它的每一個實例都有一個名為name的必備屬性和一個名為prefix的可選屬性。 當prefix存在時,將prefix插入到name之前來為Starship構建fullName。

方法要求

協議能夠要求其遵循者必備某些特定的實例方法和類方法。協議方法的聲明與普通方法聲明相似,但它不需要方法內容。

注意: 協議方法支持變長參數(variadic parameter),不支持默認參數(default parameter)。

前置class關鍵字表示協議中的成員為類成員;當協議用于被枚舉或結構體遵循時,則使用static關鍵字。如下所示: 像類屬性的要求一樣,協議中定義類方法時也總是使用class關鍵字,即使類方法在枚舉或結構體中實現時要求使用static關鍵字

protocol SomeProtocol {
    class func someTypeMethod()
}

protocol RandomNumberGenerator {
    func random() -> Double
}

RandomNumberGenerator協議要求其遵循者必須擁有一個名為random, 返回值類型為Double的實例方法。(我們假設隨機數在[0,1]區間內)。

LinearCongruentialGenerator類遵循了RandomNumberGenerator協議,并提供了一個叫做線性同余生成器(linear congruential generator)的偽隨機數算法。

class LinearCongruentialGenerator: RandomNumberGenerator {
    var lastRandom = 42.0
    let m = 139968.0
    let a = 3877.0
    let c = 29573.0
    func random() -> Double {
        lastRandom = ((lastRandom * a + c) % m)
        return lastRandom / m
    }
}
let generator = LinearCongruentialGenerator()
println("Here's a random number: \(generator.random())")
// 輸出 : "Here's a random number: 0.37464991998171"
println("And another one: \(generator.random())")
// 輸出 : "And another one: 0.729023776863283"

突變方法要求

能在方法或函數內部改變實例類型的方法稱為突變方法。在值類型(Value Type)(譯者注:特指結構體和枚舉)中的的函數前綴加上mutating關鍵字來表示該函數允許改變該實例和其屬性的類型。 這一變換過程在實例方法(Instance Methods)章節中有詳細描述。

(譯者注:類中的成員為引用類型(Reference Type),可以方便的修改實例及其屬性的值而無需改變類型;而結構體和枚舉中的成員均為值類型(Value Type),修改變量的值就相當于修改變量的類型,而Swift默認不允許修改類型,因此需要前置mutating關鍵字用來表示該函數中能夠修改類型)

注意: 用class實現協議中的mutating方法時,不用寫mutating關鍵字;用結構體,枚舉實現協議中的mutating方法時,必須寫mutating關鍵字。

如下所示,Togglable協議含有toggle函數。根據函數名稱推測,toggle可能用于切換或恢復某個屬性的狀態。mutating關鍵字表示它為突變方法:

protocol Togglable {
    mutating func toggle()
}

當使用枚舉或結構體來實現Togglabl協議時,必須在toggle方法前加上mutating關鍵字。

如下所示,OnOffSwitch枚舉遵循了Togglable協議,On,Off兩個成員用于表示當前狀態

enum OnOffSwitch: Togglable {
    case Off, On
    mutating func toggle() {
        switch self {
        case Off:
            self = On
        case On:
            self = Off
        }
    }
}
var lightSwitch = OnOffSwitch.Off
lightSwitch.toggle()
//lightSwitch 現在的值為 .On

協議類型

協議本身不實現任何功能,但你可以將它當做類型來使用。

使用場景:

  • 作為函數,方法或構造器中的參數類型,返回值類型
  • 作為常量,變量,屬性的類型
  • 作為數組,字典或其他容器中的元素類型

注意: 協議類型應與其他類型(Int,Double,String)的寫法相同,使用駝峰式

class Dice {
    let sides: Int
    let generator: RandomNumberGenerator
    init(sides: Int, generator: RandomNumberGenerator) {
        self.sides = sides
        self.generator = generator
    }
    func roll() -> Int {
        return Int(generator.random() * Double(sides)) +1
    }
}

這里定義了一個名為 Dice的類,用來代表桌游中的N個面的骰子。

Dice含有sides和generator兩個屬性,前者用來表示骰子有幾個面,后者為骰子提供一個隨機數生成器。由于后者為RandomNumberGenerator的協議類型。所以它能夠被賦值為任意遵循該協議的類型。

此外,使用構造器(init)來代替之前版本中的setup操作。構造器中含有一個名為generator,類型為RandomNumberGenerator的形參,使得它可以接收任意遵循RandomNumberGenerator協議的類型。

roll方法用來模擬骰子的面值。它先使用generator的random方法來創建一個[0-1]區間內的隨機數種子,然后加工這個隨機數種子生成骰子的面值。

如下所示,LinearCongruentialGenerator的實例作為隨機數生成器傳入Dice的構造器

var d6 = Dice(sides: 6,generator: LinearCongruentialGenerator())
for _ in 1...5 {
    println("Random dice roll is \(d6.roll())")
}
//輸出結果
//Random dice roll is 3
//Random dice roll is 5
//Random dice roll is 4
//Random dice roll is 5
//Random dice roll is 4

委托(代理)模式

委托是一種設計模式,它允許類或結構體將一些需要它們負責的功能交由(委托)給其他的類型。

委托模式的實現很簡單: 定義協議來封裝那些需要被委托的函數和方法, 使其遵循者擁有這些被委托的函數和方法。

委托模式可以用來響應特定的動作或接收外部數據源提供的數據,而無需要知道外部數據源的類型。

下文是兩個基于骰子游戲的協議:

protocol DiceGame {
    var dice: Dice { get }
    func play()
}

protocol DiceGameDelegate {
    func gameDidStart(game: DiceGame)
    func game(game: DiceGame, didStartNewTurnWithDiceRoll diceRoll:Int)
    func gameDidEnd(game: DiceGame)
}

DiceGame協議可以在任意含有骰子的游戲中實現,DiceGameDelegate協議可以用來追蹤DiceGame的游戲過程。

如下所示,SnakesAndLadders是Snakes and Ladders(譯者注:控制流章節有該游戲的詳細介紹)游戲的新版本。新版本使用Dice作為骰子,并且實現了DiceGame和DiceGameDelegate協議

class SnakesAndLadders: DiceGame {
    let finalSquare = 25
    let dic = Dice(sides: 6, generator: LinearCongruentialGenerator())
    var square = 0
    var board: Int[]
    init() {
        board = Int[](count: finalSquare + 1, repeatedValue: 0)
        board[03] = +08; board[06] = +11; borad[09] = +09; board[10] = +02
        borad[14] = -10; board[19] = -11; borad[22] = -02; board[24] = -08
    }
     var delegate: DiceGameDelegate?
     func play() {
         square = 0
         delegate?.gameDidStart(self)
         gameLoop: while square != finalSquare {
             let diceRoll = dice.roll()
             delegate?.game(self,didStartNewTurnWithDiceRoll: diceRoll)
             switch square + diceRoll {
             case finalSquare:
                 break gameLoop
             case let newSquare where newSquare > finalSquare:
                 continue gameLoop
             default:
             square += diceRoll
             square += board[square]
             }
         }
         delegate?.gameDIdEnd(self)
     }
}

游戲的初始化設置(setup)被SnakesAndLadders類的構造器(initializer)實現。所有的游戲邏輯被轉移到了play方法中。

注意: 因為delegate并不是該游戲的必備條件,delegate被定義為遵循DiceGameDelegate協議的可選屬性

DicegameDelegate協議提供了三個方法用來追蹤游戲過程。被放置于游戲的邏輯中,即play()方法內。分別在游戲開始時,新一輪開始時,游戲結束時被調用。

因為delegate是一個遵循DiceGameDelegate的可選屬性,因此在play()方法中使用了可選鏈來調用委托方法。 若delegate屬性為nil, 則委托調用優雅地失效。若delegate不為nil,則委托方法被調用

如下所示,DiceGameTracker遵循了DiceGameDelegate協議

class DiceGameTracker: DiceGameDelegate {
    var numberOfTurns = 0
    func gameDidStart(game: DiceGame) {
        numberOfTurns = 0
        if game is SnakesAndLadders {
            println("Started a new game of Snakes and Ladders")
        }
        println("The game is using a \(game.dice.sides)-sided dice")
    }
    func game(game: DiceGame, didStartNewTurnWithDiceRoll diceRoll: Int) {
        ++numberOfTurns
        println("Rolled a \(diceRoll)")
    }
    func gameDidEnd(game: DiceGame) {
        println("The game lasted for \(numberOfTurns) turns")
    }
}

DiceGameTracker實現了DiceGameDelegate協議的方法要求,用來記錄游戲已經進行的輪數。 當游戲開始時,numberOfTurns屬性被賦值為0;在每新一輪中遞加;游戲結束后,輸出打印游戲的總輪數。

gameDidStart方法從game參數獲取游戲信息并輸出。game在方法中被當做DiceGame類型而不是SnakeAndLadders類型,所以方法中只能訪問DiceGame協議中的成員。

DiceGameTracker的運行情況,如下所示:

let tracker = DiceGameTracker()
let game = SnakesAndLadders()
game.delegate = tracker
game.play()
// Started a new game of Snakes and Ladders
// The game is using a 6-sided dice
// Rolled a 3
// Rolled a 5
// Rolled a 4
// Rolled a 5
// The game lasted for 4 turns

在擴展中添加協議成員

即便無法修改源代碼,依然可以通過擴展(Extension)來擴充已存在類型(譯者注: 類,結構體,枚舉等)。擴展可以為已存在的類型添加屬性,方法,下標,協議等成員。詳情請在擴展章節中查看。

注意: 通過擴展為已存在的類型遵循協議時,該類型的所有實例也會隨之添加協議中的方法

TextRepresentable協議含有一個asText,如下所示:

protocol TextRepresentable {
    func asText() -> String
}

通過擴展為上一節中提到的Dice類遵循TextRepresentable協議

extension Dice: TextRepresentable {
    cun asText() -> String {
        return "A \(sides)-sided dice"
    }
}

從現在起,Dice類型的實例可被當作TextRepresentable類型:

let d12 = Dice(sides: 12,generator: LinearCongruentialGenerator())
println(d12.asText())
// 輸出 "A 12-sided dice"

SnakesAndLadders類也可以通過擴展的方式來遵循協議:

extension SnakeAndLadders: TextRepresentable {
    func asText() -> String {
        return "A game of Snakes and Ladders with \(finalSquare) squares"
    }
}
println(game.asText())
// 輸出 "A game of Snakes and Ladders with 25 squares"

通過擴展補充協議聲明

當一個類型已經實現了協議中的所有要求,卻沒有聲明時,可以通過擴展來補充協議聲明:

struct Hamster {
    var name: String
    func asText() -> String {
        return "A hamster named \(name)"
    }
}
extension Hamster: TextRepresentabl {}

從現在起,Hamster的實例可以作為TextRepresentable類型使用

let simonTheHamster = Hamster(name: "Simon")
let somethingTextRepresentable: TextRepresentabl = simonTheHamester
println(somethingTextRepresentable.asText())
// 輸出 "A hamster named Simon"

注意: 即時滿足了協議的所有要求,類型也不會自動轉變,因此你必須為它做出明顯的協議聲明

集合中的協議類型

協議類型可以被集合使用,表示集合中的元素均為協議類型:

let things: TextRepresentable[] = [game,d12,simoTheHamster]

如下所示,things數組可以被直接遍歷,并調用其中元素的asText()函數:

for thing in things {
    println(thing.asText())
}
// A game of Snakes and Ladders with 25 squares
// A 12-sided dice
// A hamster named Simon

thing被當做是TextRepresentable類型而不是Dice,DiceGame,Hamster等類型。因此能且僅能調用asText方法

協議的繼承

協議能夠繼承一到多個其他協議。語法與類的繼承相似,多個協議間用逗號,分隔

protocol InheritingProtocol: SomeProtocol, AnotherProtocol {
    // 協議定義
}

如下所示,PrettyTextRepresentable協議繼承了TextRepresentable協議

protocol PrettyTextRepresentable: TextRepresentable {
    func asPrettyText() -> String
} 

遵循``PrettyTextRepresentable協議的同時,也需要遵循TextRepresentable`協議。

如下所示,用擴展為SnakesAndLadders遵循PrettyTextRepresentable協議:

extension SnakesAndLadders: PrettyTextRepresentable {
    func asPrettyText() -> String {
        var output = asText() + ":\n"
        for index in 1...finalSquare {
            switch board[index] {
                case let ladder where ladder > 0:
                output += "▲ "
            case let snake where snake < 0:
                output += "▼ "
            default:
                output += "○ "
            }
        }
        return output
    }
}

在for in中迭代出了board數組中的每一個元素:

  • 當從數組中迭代出的元素的值大于0時,用▲表示
  • 當從數組中迭代出的元素的值小于0時,用▼表示
  • 當從數組中迭代出的元素的值等于0時,用○表示

任意SankesAndLadders的實例都可以使用asPrettyText()方法。

println(game.asPrettyText())
// A game of Snakes and Ladders with 25 squares:
// ○ ○ ▲ ○ ○ ▲ ○ ○ ▲ ▲ ○ ○ ○ ▼ ○ ○ ○ ○ ▼ ○ ○ ▼ ○ ▼ ○

協議合成

一個協議可由多個協議采用protocol<SomeProtocol, AnotherProtocol>這樣的格式進行組合,稱為協議合成(protocol composition)。

舉個例子:

protocol Named {
    var name: String { get }
}
protocol Aged {
    var age: Int { get }
}
struct Person: Named, Aged {
    var name: String
    var age: Int
}
func wishHappyBirthday(celebrator: protocol<Named, Aged>) {
    println("Happy birthday \(celebrator.name) - you're \(celebrator.age)!")
}
let birthdayPerson = Person(name: "Malcolm", age: 21)
wishHappyBirthday(birthdayPerson)
// 輸出 "Happy birthday Malcolm - you're 21!

Named協議包含String類型的name屬性;Aged協議包含Int類型的age屬性。Person結構體遵循了這兩個協議。

wishHappyBirthday函數的形參celebrator的類型為protocol<;Named,Aged>。可以傳入任意遵循這兩個協議的類型的實例

注意: 協議合成并不會生成一個新協議類型,而是將多個協議合成為一個臨時的協議,超出范圍后立即失效。

檢驗協議的一致性

使用is檢驗協議一致性,使用as將協議類型向下轉換(downcast)為的其他協議類型。檢驗與轉換的語法和之前相同(詳情查看類型檢查):

  • is操作符用來檢查實例是否遵循了某個協議。
  • as?返回一個可選值,當實例遵循協議時,返回該協議類型;否則返回nil
  • as用以強制向下轉換型。
@objc protocol HasArea {
    var area: Double { get }
}

注意: @objc用來表示協議是可選的,也可以用來表示暴露給Objective-C的代碼,此外,@objc型協議只對類有效,因此只能在類中檢查協議的一致性。詳情查看

class Circle: HasArea {
    let pi = 3.1415927
    var radius: Double
    var area:≈radius }
    init(radius: Double) { self.radius = radius }
}
class Country: HasArea {
    var area: Double
    init(area: Double) { self.area = area }
}

Circle和Country都遵循了HasArea協議,前者把area寫為計算型屬性(computed property),后者則把area寫為存儲型屬性(stored property)。

如下所示,Animal類沒有實現任何協議

class Animal {
    var legs: Int
    init(legs: Int) { self.legs = legs }
}

Circle,Country,Animal并沒有一個相同的基類,所以采用AnyObject類型的數組來裝載在它們的實例,如下所示:

let objects: AnyObject[] = [
    Circle(radius: 2.0),
    Country(area: 243_610),
    Animal(legs: 4)
]

如下所示,在迭代時檢查object數組的元素是否遵循了HasArea協議:

for object in objects {
    if let objectWithArea = object as? HasArea {
        println("Area is \(objectWithArea.area)")
    } else {
        println("Something that doesn't have an area")
    }
}
// Area is 12.5663708
// Area is 243610.0
// Something that doesn't have an area

當數組中的元素遵循HasArea協議時,通過as?操作符將其可選綁定(optional binding)到objectWithArea常量上。

objects數組中元素的類型并不會因為向下轉型而改變,當它們被賦值給objectWithArea時只被視為HasArea類型,因此只有area屬性能夠被訪問。

可選協議要求

可選協議含有可選成員,其遵循者可以選擇是否實現這些成員。在協議中使用@optional關鍵字作為前綴來定義可選成員。

可選協議在調用時使用可選鏈,詳細內容在可選鏈章節中查看。

像someOptionalMethod?(someArgument)一樣,你可以在可選方法名稱后加上?來檢查該方法是否被實現。可選方法和可選屬性都會返回一個可選值(optional value),當其不可訪問時,?之后語句不會執行,并返回nil。

注意: 可選協議只能在含有@objc前綴的協議中生效。且@objc的協議只能被類遵循。

Counter類使用CounterDataSource類型的外部數據源來提供增量值(increment amount),如下所示:

@objc protocol CounterDataSource {
    @optional func incrementForCount(count: Int) -> Int
    @optional var fixedIncrement: Int { get }
}

CounterDataSource含有incrementForCount的可選方法和fiexdIncrement的可選屬性。

注意: CounterDataSource中的屬性和方法都是可選的,因此可以在類中聲明但不實現這些成員,盡管技術上允許這樣做,不過最好不要這樣寫。

Counter類含有CounterDataSource?類型的可選屬性dataSource,如下所示:

@objc class Counter {
    var count = 0
    var dataSource: CounterDataSource?
    func increment() {
        if let amount = dataSource?.incrementForCount?(count) {
            count += amount
        } else if let amount = dataSource?.fixedIncrement? {
            count += amount
        }
    }
}

count屬性用于存儲當前的值,increment方法用來為count賦值。

increment方法通過可選鏈,嘗試從兩種可選成員中獲取count。

  1. 由于dataSource可能為nil,因此在dataSource后邊加上了?標記來表明只在dataSource非空時才去調用incrementForCount`方法。
  2. 即使dataSource存在,但是也無法保證其是否實現了incrementForCount方法,因此在incrementForCount方法后邊也加有?標記。

在調用incrementForCount方法后,Int型可選值通過可選綁定(optional binding)自動拆包并賦值給常量amount。

當incrementForCount不能被調用時,嘗試使用可選屬性``fixedIncrement來代替。

ThreeSource實現了CounterDataSource協議,如下所示:

class ThreeSource: CounterDataSource {
    let fixedIncrement = 3
}

使用ThreeSource作為數據源開實例化一個Counter:

var counter = Counter()
counter.dataSource = ThreeSource()
for _ in 1...4 {
    counter.increment()
    println(counter.count)
}
// 3
// 6
// 9
// 12

TowardsZeroSource實現了CounterDataSource協議中的incrementForCount方法,如下所示:

class TowardsZeroSource: CounterDataSource {
func incrementForCount(count: Int) -> Int {
        if count == 0 {
            return 0
        } else if count < 0 {
            return 1
        } else {
            return -1
        }
    }
}

下邊是執行的代碼:

counter.count = -4
counter.dataSource = TowardsZeroSource()
for _ in 1...5 {
    counter.increment()
    println(counter.count)
}
// -3
// -2
// -1
// 0
// 0

標簽:Swift

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


為你推薦

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


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
利記足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網上PM娛樂城盤口(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規雷火競技官方買球(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權威十大網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 權威188BET足球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規188BET足球大全(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 在线观看国产h视频 | 丰满在线观看 | 国产日韩另类视频一区 | 成人影片一区免费观看 | 日韩午夜激情网址在线观看 | 欧美日韩日处女黑人 | 亚欧洲乱码视频一二三区 | 成年女人爽到 | 欧美日韩一区欧美不卡 | 日韩亚洲人成在线综合 | 日韩精品欧美激情亚洲综合 | 九九九精品视频在线播放 | 桃花视频免 | 国产精品老熟女视频一区二区 | 天天a3极品a3私服 | 亚洲日本中文字幕一 | 欧美中文字幕乱伦视频 | 国语自产精品 | 精品香蕉伊思人在线观看 | 中国免费高清视频在线观看 | 99精品综合 | 国产欧美日韩一区二区三区蜜桃 | 欧美亚洲一区二区三区 | 欧美小视频在线 | 日韩精品suv | 中文字幕精品亚洲一区 | 国内揄拍国内精品视 | 激情亚洲一区国产精品 | 九九视频在线观看免费 | 国产伦子伦对白视频 | 亚洲自偷精品视频自拍 | 亚洲日韩欧美 | 国产卡二卡三卡四卡免费网址 | 日本不无在线一区二区三区 | 国产女人抽搐喷浆视频 | 国产日韩产欧美一区二区 | 国产女优一区二区在线观看 | 亚洲精品亚洲精品亚洲精品日韩 | 青青青手机国产在 | 成人天堂资源在线观看 | 久在线免费观看成年人视频 | 肉丝在线观看 | 國產精品爽爽va免費觀看 | 观看一级 | 日本在线视频一区二区免费 | 日本视频中文字幕一区二区 | 国产乡下三级全黄三级bd | 国产免费高清永久在线不卡 | 日本h无羞动漫在线观看网站 | 免费簧网站永久在线播放国产 | 国产精品综合色区在线观看 | 亚洲一区 | 成人免费观看 | 国产91综合 | 国产精品喷潮免费观 | 国产高清免费在线观看精品 | 欧美日韩一级二级三级 | 九九亚洲精品唯美女同互添 | 日韩精品武 | 91成人影院| 国产日韩另类视频一区 | 国产精品亚洲第一区不卡原创 | 国产一区二区三区在线视频 | 国产乱子伦对白视频 | 国产精品高清自产拍 | 99日韩a及免费视频 日产国产精品日韩精品 | 国产性爱在线观看欧美亚洲黄 | 国产精品浪潮v一区二区 | 国产精品一在线观看 | 欧美激情都市国产 | 91视频国产一区 | 国产亚洲人成a在线v网站 | 中文岛国精品亚洲一区 | 免费xxxx大片 | 91精品国产薄丝高跟在线动漫 | 精品一区二区三区视频免费 | 亚洲日韩电影网天堂影院 | 欧洲+亚洲+日本+国产 | 欧美午夜一区二区之蜜桃 | 精品美脚玉足 | 日韩一区精品视频一区二区 | 99久看免费视频 | 亚洲欧美suv精品 | 国产欧美日韩综合在线一 | 99国产视频有精彩视频 | 国产农村妇女特 | 成人一区二区三区在线观看 | 国产制服中文字幕在线 | 亚洲精品天天影视综合网 | 香蕉国产亚洲精品va在线观 | 国产色产综合色产在线观看视频 | 欧美日韩国产变态一区二区三区 | 麻花豆传媒剧国产免费mv观 | 国产91页| 国产欧美午夜视频 | 色色王国日韩 | 亚洲综合一区国产精品 | 亚洲日本va在 | 不卡在线观看 | 99热这里只有精品6 国产三香港三韩国三级不卡 | 蜜桃视频91| 日本不卡高清视国 | 日韩欧美亚洲视频 | 日韩精品一区二区三区免费看 | 9191中文字幕免费 | 日本在线一区二区三区观看 | 99久热这| 国产精品区在 | 不小心滑进去中文字幕 | 欧美日韩午夜福利一区二区 | 亚洲成?v人片在线观看翻墙网站 | 朋友的妈妈2在完整有限中字第 | 久你欧洲野花视频欧洲1 | 亚洲精品一区二区三区人妖 | 成人精品一区二区免费看 | 三级在线播放 | 男女超爽视频免费播放 | 国产精品最新免费视频 | 大陆国语自产精品视频在 | 在线视频观看免费视频18 | 国产亚洲欧洲精品一区二区三区 | 精品丝袜国产自在线拍小草 | 日本边添边摸边做边爱的视频 | 亚洲日本一区二区一本一道 | 国产亚洲精品mv第十页 | 国产v在线在线观看视频免费 | 岛国aaaa级午夜福利片 | 欧美日韩精品乱国产 | 五月综合激情中文字幕版 | 国产在线永久免费观看 | 中文字幕亚洲网址 | 国产精品免费 | 日韩精品一区二区三区中文不卡 | 最新在线观看视频国产91 | 午夜影视在线播放免 | 国产精品国产一区日韩一区 | 国产精品亚洲专区 | 日韩电影免费观看2025 | 日产精品一区二区三区免费 | 欧美二三本亚洲 | 日韩在线视频一区二区三区四 | 亚洲欧美国产国产一区二区三区 | 日韩一级一区二区不 | 好吊色在线观 | 国产亚洲日本精品成人专区 | 91夜夜夜精品一区二区 | 欧美日韩亚洲国产无线码 | 国产亚洲精品自在线观看 | 日本免费一级二级三 | 欧美日韩国产一区二区三区在 | 亚洲日韩天堂在线 | 国产欧美日韩在线中文一区 | 一区二区日韩视频九一蜜桃 | 韩国欧美一区二区 | 国产a∨天天免费观看美女 欧亚成人 | 欧美日本一91视频国产 | 国内精品自线一区二区三区 | 欧美丝袜国 | 成人国产精品中文字幕 | 免费aⅴ大片在线观看 | 日本妇人成熟免费视频 | 精品无人区乱码一区二区 | 国产免费人成视频在线观看 | 欧美aⅴ激情视频 | 国产盗摄不卡 | 6080神| 特色特色的欧美大片 | 日韩欧美在线一区二区不卡 | 亚洲一区二区三区不卡视频 | 羞羞影院午夜男女爽爽视频 | 国产在线一区二区在线视频 | 亚州一区二区三区免费大片 | 欧美精品1区2区 | 日本高清在线观看www色 | 精品欧美一区二区三区在线 | 成人亚洲网站 | 国产精品v在线播放www | 欧美日韩精美视频在线观看 | 凶猛办公室高清未删减 | 国产午夜福利精品探花 | 免费观看全黄做爰大片小说 | 91精品国产免费青青碰在线观看 | 日韩高清精品在线 | 国产一卡2卡3卡4卡国 | 国内精品视频在线中文字幕 | 日本字幕中文免费高清在线播放 | 电视剧免费在线 | 欧美浓毛大泬视频在线观 | 国产精品伦理一二三区伦理 | 92手机看片| 国产乱码一卡二卡3卡四卡 国产精品视频每日更新播放 | 国产偷人自拍区视频在线观看 | 亚洲激精日韩激精欧美潮精品 | 99视频国产精品 | 欧美亚洲综合另类在线观看 | 欧美与黑人午夜性 | 国产精品成人一区二区不卡 | 中文字幕在线观看亚洲 | 国产一区精品视频 | 中文精品免费视频 | 国产精选在线视频第二页 | 日韩电影在线观看永久 | 国产精品中文字幕免费观看 | 女视频网站 | 欧美日韩国产青椒午夜剧场 | 日韩欧美精品国产亚洲综合 | 97亚洲国产中文日韩在线人 | 亚洲中文字幕人成乱在线 | 日本中文字幕永久免费 | 国产最新乱子伦视频在线播放 | 免费国产a国产片精品 | 麻花传剧原创mv在线观看 | 国产自产一区二区三区视频在线 | 国产精品国产自线拍免费软件 | 欧洲色综合 | 国产乱码精品在线播放 | 国产女饥渴熟女专区九色 | а√最新版天堂资源在线 | 国产乱偷国产馆 | 免费观看电视剧全集在线播放 | 欧美日韩国产一区二区三区伦 | 国产suv精二区 | 人人超人人超免费国产 | 操你啦日本阿v网站在线观看 | 一二三产区区 | 中文字幕在线日亚州9 | 欧美午夜婷婷国产电影 | 日本在线视频高清不卡 | 一区二区视频在线观看入口 | 亚洲偷自拍拍综合网 | 国产精品又粗又大 | 老司机精品9| 每日更新亚洲成a人v | 欧美日韩午夜视频在线观看 | 青草精品 | 国产精品视频高清在线播放 | 免费福利电 | 国产爽片 | 成人一区二区免费视频 | 国产亚洲情侣 | 最近中文字幕完整版2025一页 | 蜜桃盗摄精品一区二区三区 | 国产精品视频免费看人鲁 | 99这里只有精品视频国产 | 日本中文一二区有码在线 | 欧美韩国电影免费在线观看 | 日韩欧美精品最新 | 亚洲人成影视在线观看 | 国产在线精品观看一区 | 欧美在线观看成人高清视频 | 99成人国产精品视频 | 男女羞羞视频免费在线观看网站 | 高清欧美日韩一区二区三区在线 | 欧美精品寂寞影院 | 中文字字幕乱码高清二本道资源站 | 日本三级中文电影 | 国产亚洲欧美日韩在线观着 | 成人性爱视频在 | 村长扶着小萍的腰猛的挺进 | 日韩视频观看一区二区 | 日韩激情在线观看 | 国产精品一区二区手机看片 | 91桃色在线观看 | 国产福利一区二区三区四区 | 爽妇综合网 | 日本三级 | 日本有码在线中文字幕 | 国产在线精彩视频 | 日韩一区二区在线观看视 | 免费床戏全程无遮 | 国产一级大片免费视频 | 中文字幕美日韩在线高清 | 国产一区在线 | 国产一区二区在线免费观看 | 欧美视频一区二区专区 | 成人日动漫卡一区二区三区动漫 | 精品女同一区二区在线观看 | 日本性色 | 日韩欧美国产一区二区三区免费 | 亚洲理论片中文 | 欧美喷潮十大喷潮 | 国产一区二区不卡 | а√在线官网 | 国产又色又爽又黄刺激的影视 | 91大神电影免费观看 | 亚洲色大成网站www永久网站 | 在线观看国产日韩亚洲中文字幕 | ww欧日韩视频高清在线 | 卡一卡二卡三精品入口 | 韩国日本国产 | 最近韩国电影hd在线 | 精品国产黑色丝袜高跟鞋 | 亚洲专区国产精品欧美电影 | 免费影院| 日韩vr欧美vr性视频 | a∨视频在线观看 | 国产精品日韩欧美一区2区3区 | 国产精品丝袜一区二区三区 | xxxx自由视频 | 老司机午夜性大片免费 | 日本欧美中文字幕福利一区 | 国产欧美日韩一区在线观看 | 男人j放进女人p全黄在线 | 精品午夜福利在线观看 | 欧美另类激情 | 日韩精品中文字幕在线播放 | 国产不卡在线观看视频 | 欧美不卡在线 | 成人欧美一区二区三区在线蜜 | 大地资源第二页中文高清版 | 国产一级在线观看 | 日本午夜免费啪视频 | 中文在线中文资源 | 亚洲欧美日韩国产综合点此进入 | 91精品丝袜国产在线一区 | 不要钱不用登陆的污直播 | 另类亚洲综合区图片小说区 | 欧美日韩大码中文区二区三区 | 精品亚洲成a人在线看片 | 国产91免费精品电影 | 欧美视频在线视频精品 | 亚洲日本欧美日韩精品 | 免费观看女 | 在线观看日本亚洲一区 | 国产精品极 | 国产热门视频在线观看日韩 | 国产香蕉一人在线视频 | 成品网站w在线观看 | 红杏亚洲影院一区二区三区 | 国产新拍在线 | 日韩免费在线观看视频 | 免费一区二区 | 亚洲国产日韩欧美视频一区 | 国产99桃花视频 | 成人伊人精品色xxxx视频 | 国产a成人一区二区三区 | 日本三级韩国三级欧美三级 | 国产精品亚洲综合一区在线观看 | 老司机永久免费视频网站在线观看 | igao激情视频 | 99亚洲国产综合 | 欧美人与动牲 | 最新国语自产精品视频在 | 亚洲欧美日韩精品中文乱码 | 国产一级大片免费 | 99re在线播放视频国产 | 深爱香蕉五月 | 精品国产日韩一区三区 | 国产精品人成视频免费播放 | 中文字幕在线播放视频 | 99精品国产自在现线观看 | 国产精品欧美一 | 精品国产91久 | 欧美极品欧美精品欧美视频 | 国产精品一区二 | 国精产品一| 成人精品视频一区二区三区 | 日韩高清一区二区在线观看 | 欧美日本亚欧在线观看欧亚 | 国产又色又爽又黄又免费 | 精品亚洲国 | 国产九区 | 18出禁止看的啪视频网站 | 国产精品一级国产精品片 | 国产精品亚洲玖玖 | h片在线观看免 | 国产精品三级不卡电影 | 亚洲视频福利 | 欧美日韩免费 | 一区二区三区不卡 | 精品国产日韩亚洲一区二区 | 国产精品免费视频一区二区 | a级国产乱理片 | 嫩videossexo另类 | 国产精品一区二区视色 | 成人精品在线观看 | 99精品在线国产观看搜 | 手机看片1024国产 | 日本成人午夜 | 国内外精品激情刺激在线 | 精品日产卡一卡二卡国色天香 | 免费高清欧美亚洲视频 | 国产国拍亚洲精品永久不卡 | 精品国产另类欧美精品 | yy6080午夜理论成人影院 | 一区二区不卡中文字幕在线 | 免费777my性欧美另类 | 国产精品一区在线观看第一页 | 免费人成黄页网站大全在线观 | 国产精品中文第一字幕 | 天天影视色 | 99国产免费观看 | 日韩中文字幕精品a | 精品国内一区二区三区免费视频 | 91影视永久福 | 国产精品拍自在线观看 | 初次深交流请多指教第二话 | 免费播放国产性色生活片 | 欧美a在线看 | 国产香蕉尹人视频在 | 国产精品亚洲精品一区二区三区 | 欧美高清在线视频在线99精品 | 免费在线观看a视频 | 欧洲成人一区二区 | 亚洲性日韩精品一区二区 | 国产又大又粗又黄又爽的视 | 国产精品对白刺激音频在线观看 | 欧美精品亚洲精品日韩专区一乛 | 天美传媒官方网站 | 99热99re8国产在线播放 | 内地级a艳片高清免费播放 国产视频中文字幕手机版 欧美高清日韩在线 | 国产性爱专区在线 | 亚洲自拍高清中文 | 欧美亚洲a∨中文 | 日韩视频中文字幕 | 国产又色又爽又黄的视频免费看 | 欧美国产日韩在线一区 | 国产做爰xxx | 日韩亚洲国产剧情在线 | 亚洲中文欧美日韩在线 | 狂野少女电视剧免费播放 | 黑人巨大精品欧美视频一区 | 老牛影视文化传媒有限公司官方 | 中文字幕在线影院 | 欧美一级a欧美特黄 | 国产在线永久免费观看 | 播放国语介绍动漫更新视 | 91直播在线观看免费 | 九九视频在线观看视频6 | 97国产精品系列在线观看 | 精品国产亚洲人成在线观看芒果 | 午夜影院c绿象 | 欧美阿v高 | 欧美自拍偷拍一区二区 | 好看的电视剧免 | 国产va免费精品观看精品 | 日韩一区二区三区不卡视频 | 亚洲精品字幕中文在线播放 | 91福利一区二区 | 亚洲s色大片在线观看 | 在线观看一区二区三区 | 日本成年人 | 国产不卡a | 女人的天堂a国产 | 免费一级e一片在线播放 | 国产香蕉人人干干 | 喷在线播放| 亚洲午夜视频在线观看 | 亚洲高清一区二 | 精品欧美一区二区三区精品久 | 亚洲一级二级三级精品 | 国产精品美乳在线观看 | 免费草莓视频app在线下载 | 国产免费观看大片黄 | 日韩高清亚洲日韩精品一 | 日韩国产一区二区网站在线看 | 91精品91免费观看 | 国产日韩欧美另类在线 | 国产高清αv | 自拍偷在 | 欧美日韩精品一区二区另类 | 日韩免费的一 | 91网视频在线观看 | 亚洲欧美日韩中文字幕在线一 | 亚洲性线免费观看 | 97se色综合一区二区二区 | 国产亚州视频在线视频 | 99国产清国产精品国产 | 国精产品一区二区三区有限公司 | 精品录音国产一区在线 | 成人福利午夜ed2k | 综合色区在线观看 | 文中字幕一区二区三区视频播放 | 亚洲欧美综合视频 | 日产中文字幕在线精品一区 | 国产欧美亚洲一级a在线观看 | 99亚洲中文字幕精品一区二区 | 高清一级做a爱过程不卡视频 | 欧美色综合网站 | 日本一区二区三区四区在线 | 日本a∨精品一区二区三区 亚洲s色大片在线观看 | 欧美αv国产αv亚洲αv | 国产中文字 | 欧美日韩国产综合一区二区三区 | 狠狠做深爱 | 色欧美片视频在线观看 | 夜爽夜夜网 | 欧美一级黄 | 日韩欧美国产一级免费 | 国产亚洲91精品色在线 | 韩国理伦电影三级 | 日本不卡中文字幕免费 | 国产农村妇女精品一二区 | 美女免费精品 | 国产开嫩苞实拍在线播放视频 | 费精品国产一区国产精品剧情在线 | 梦乃爱华作品在线观看播放 | 国产精品精品一区二区三区 | 国产精品卡2卡三卡4卡 | 国产精品国产自线拍免费 | 美日韩在线视频 | 国产亚洲束缚综合在线 | 日韩女同在线二区三区 | 伦理片手机在线观看 | 亚州精品永久观看视频 | 亚洲春色在线观看 | h版电影在线播放视频网址 国产在线观看成永久视频 精品视频在线播放一区二区三区 | 最近的中文字幕视频完整 | 大伊香蕉精品一区视频在线 | 日本视频免费观看 | 精品亚洲日韩国产一二三区 | 又黄又粗暴的g | 97天堂nba永久免费入口 | 国产欧美一区三 | 欧美综合精品一区二区二 | 欧洲在线观看一区二 | 91精品国产白产91精品 | 试看试看视频 | 成人播放日韩在线观 | a视频乱 | 日本欧美日韩综合精品一区二区 | 国产高清视频色拍 | 欧美精品亚洲精品日韩传电影 | 精品国产污免费网站在线观看 | 日韩一区三区视频 | 午夜福利电影院 | 国产精品综 | 欧美精品一二三 | 182tv精品视频在线播放 | 国产亚洲精品综合网在线观看 | 亚洲欧美综合精品成人导航 | 欧美一区二区三区 | 欧美香蕉大胸在线视频观看 | 1717she精品永久免费视频 | aaa在线视频免费观看 | 成人短视频黄 | 韩国精品一区二区三区在线 | 日韩亚洲欧美中文高清在线 | 九九热爱视频精品视频 | 欧美一级欧美一级高清 | 国产老子午夜福利 | 国产日产欧美一区二区 | 国产福利在线观看极品美女 | 国产手机视频在线 | a级日韩乱理伦片在线观看 欧美秘书性爱在 | 欧美激情在线播放一区二区 | 国产96在线 | 日韩欧美中文字幕一字不卡 | 亚州精品永久观看视频 | 97色轮| 亚洲欧美日韩人兽免费 | 国产欧美乱伦中文 | www亚洲精品在线观看 | 日韩欧美三区免费观看 | 日韩国产一区二区在线播放 | 国产在亚洲线视频观看。 | 在线观看亚洲精品一区二区 | 亚洲综合精品第一页 | 国产精品边做奶水狂喷有码 | 亚洲+变态+欧美+另类+精品 | 国产一级aaaaa免费播放 | 国产免费人成在线视频 | 欧美亚洲日本国产黑白 | 老司机永久免费视频网站 | 国内在线视频观看 | 亚洲色一色噜一噜噜噜人与 | 免费高清电影在线播放 | 在线观看一二三四区 | 日韩大片高清播放器大全 | 91免费精品国偷自产在线在线 | 中文自拍 | 日本中文字幕专区视频在线 | 九九热视频 | 日本丰满岳乱妇在线观看 | 国产午夜在线免费 | 视频在线看免费观看 | 精品精品国产自在97香蕉 | 国产女人喷潮视频在线观看 | 亚洲午夜成人va在线 | 日本韩国精品一区二区乱码 | 日本亚洲欧美综合视频 | 精品一区网友自拍偷拍第一页 | 国产熟女真实 | 欧美日精品一区二区在线观看 | 亚欧乱色国产精品免费 | 国产一区二区三区不卡在线看 | 亚洲综合在线播放 | 色综合激情丁香七月色综合 | 一区二区三区亚洲综合 | 国产在线视频福利资源站 | 日本一卡2卡3卡无卡免费 | 日本中文一区二 | 中文字幕日韩精品一区二区三区 | 欧美日韩视频在线观看第一区 | 亚洲欧美自拍明星合 | 日韩操穴 | 超级媚药痉 | 国内永久福利在线视频 | 国产精品国内免费一区二区三区 | 动精品动漫专区3d在线看 | 欧美精品videosex极品 | 国产一区二区精品在线观看 | 国产伦精品一区二区三区无广告 | 91福利国产在线观一区二区 | 国产在线观看在线播出 | 色一情一乱一乱一 | 欧美性视 | 成人动漫在线免费看 | 国产精品片在线观看 | 精品在线国产一区二区三区 | 日韩专区欧美 | 99精产国品一二三产区区别 | 日韩精选一区二区在线观看 | 国产网红刘婷在线视频 | 91李宗精品72集在线观看 | 午夜视频在线观看国产 | 国产精品成人va在线观看 | 都市激情亚洲 | 亚洲黄免费看网站 | 国产在线激情小视频青青 | 国产又大又硬又粗又猛的视频 | 91一区二区在线观看精品 | 欧美伦理电影大全 | 欧美日韩高清视频一区二区三区 | 国产九九自拍电 | 欧美专区亚洲专区 | 国自产拍在线网站 | 欧美日韩在线成综合 | 国产ⅴa免费精品高清在线 欧美日韩免费高清一区二区 | 国产成自拍亚洲精品 | 欧美性爱之线免费观看 | 男人j日女人p免费视频 | 国产福利在线观看91精品性色 | 日韩欧美国产字幕在线不卡 | 日韩欧美在线中 | 国产乱妇乱子在 | 日本中文一区二区三区亚洲 | 日本欧美亚洲日韩国产 | 自拍亚洲欧美另类动漫 | 国产精品亚洲在线播放 | 亚洲欧洲自拍图片 | 免费观看精品视频999 | 天天综合网天天综合 | 成年免费大片黄在线观看一 | 亚洲精品一区二区不卡 | 免费国产午夜在线观看 | 伊伊人成亚洲综合人网7777 | 欧洲女同互添互慰在线观看 | 国产一区二区亚洲一区二区 | 国产系列在线精品二区 | 国产中文一区二区 | 99视频有精品视频在线观看 | 伦理片免费观在线看 | 国产精品国语对白一区二区 | 国内国内在线精品视频 | 日本高清视频www夜色资源 | 女同互添下身视频在线观看 | 日韩中文福| 国语精品一区二 | 日韩欧美精品一区二区三区经典 | 成人免费看片又大又黄 | 日韩女同互慰专区 | 日韩一区高清在线观看 | 乱子伦国产对白在线播放 | 国产激情精品一区二区三区免费 | 娇小teen乱子 | 在线日韩 | 性爱影院三级国产 | 欧美最猛黑人xx | 国产一二三区在线播放 | 精品日本一区二区三区在线 | 日韩伦理一区二区精品视频 | 精品亚洲制服丝袜高跟 | 日韩va| 国产欧美日韩在线播放第一天 | 亚洲中文字幕精品一区二区三区 | 好吊色妇女免费视频免费 | 中文字幕人成乱码在线观看 | 欧美日韩精品一区二区另类 | 色吊丝中文字幕 | 欧美日韩中文综合第一页 | 午夜在线观看免费观看大全 | 国产精品99精品一区二区三区 | 不卡中文字幕激情视频网站 | 日韩一区二区三区自拍偷拍 | 成人免费视频 | 欧美日产亚洲国产精品 | 欧美亚洲一区 | 成人全黄三级视频在线 | 精品免费| 国产精品自在自线观看 | 99热99re8国产在线播放 | 国产欧美日韩精品视频二区 | 国产最新在线一区二区 | 微博网红户外露出在线观看 | 乱码一区二区三区 | 午夜欧美在线 | 综合精品三级亚洲 | 加勒比he | 国产在线精品一区在线观看; | 免费精品国偷自产在线在线 | 日产精品一线二线三线 | 国产资源在线观看 | 国产又粗又黄又爽的大片 | a一级农村片 | 日韩女优在线观看 | 韩国三级香港三级日本三级la | 69精品人人槡 | 国产又大又硬又粗 | 欧美视频人人干人人 | 欧美激情观看一区 | 精品一卡2卡三卡四卡乱码 国产一区二区在线观看网站 | 国产天堂很黄很暴力的视频 | 国产亚洲精品午夜高清影院 | 国产精品熟女一 | 国产精品天天看特色大片不卡 | 国产精品91一线天 | 国内自产 | 欧美片巜欲性高 | 国产偷v国产偷v亚洲偷v电影 | 国产精品中文第一字幕 | 成全视频观看免费高清第6季 | 成人做爰66片免费看网站 | 日韩最新视频一区二区三 | 在线观看午夜福利院视频 | 午夜视频在线免费观看 | 蜜臀精品一区二区三区在线观看 | 亚洲一区二区三区 | 国产夫妇精品自在线 | 国产一级大片在线观看 | 在线国产精品看片 | 成人啪精品视频网站午夜 | 国产a∨国片精品青草视频 韩国精品一区二区三区在线 | 午夜家庭影 | 成小说网站色在线 | 国产午夜福利正在播放 | 日韩一区二区三区高清中文字幕 | 国产国产乱 | 乱色熟女综合一区二区三区 | 成人羞羞视频 | 国产一区二区三区亚洲 | a午夜福利精品国产 | 精品国产a毛 | 一区二区三区国产精品午夜福利 | 精品视频在线观看视频免费视频 | 国产免费三a在线 | 国产一卡二卡3卡四卡 | 国产日韩一区二区三区在线观看 | 欧美日韩一区精品高免费专区 | 日韩高清亚洲日韩精品一区 | 男人tv天堂精品一区二区 | 日本国产一 | 欧美国产日韩一区 | 国产蜜桃精品 | 国产精品成人免费视频99 | 午夜福利电影院 | 国产精品亚洲a∨天堂不卡 97在线观看免费视频观看 | 91高清国 | 国产欧美一级二级三级 | 国产精品不卡一区二区三区 | 日本一区二区三区在线观看入口 | 国产乱码亚洲日韩欧美乱码 | 国产人成网线在线播放va | 国产精品第二页在线撒放 | 免费看成人国产一区二区 | 国产乱色国产精品免费视频 | 国自产拍在线视频天 | 99在线精品日韩一区免费国产 | 国产精品视频色怕怕 | 国产熟女一区二区五月婷 | 日韩欧美一区二区三区永久免费 | 国精产品999国精产 三三电影网 | 99re热视频精品首页 | 国内精品一区二区三区 | 国产精品成人免费视频 | 一级中文字幕免费乱码专区 | 97公开视频 | 国产精品亚洲自在线播放页码 | 国产精品激情自拍 | 51国偷自产一区二区三区 | 日韩在线观看不卡 | 日本电影一区二区 | 国产精品亚洲一区在线观看 | 国产精品va在线观看超清 | 日本欧美一区二区三区在线播放 | 国产精品亚洲一区二区三区在线 | 亚洲欧洲另类春色校园小说 | 大地资源在线观看免费中文版 | 欧美激情国产在线 | 蜜桃盗摄精品一区二区三区 | 亚洲欧美日韩国产精品一区二 | 日本日本乱码伦视频网站 | 国产精品俺来也在 | 国产丶欧美丶日本不卡 | 国产高清精品一区二区 | 日本一区二区免费在线观看视频 | 亚洲老妈激情一区二区三区 | a∨视频在线观看 | 国产狂喷潮在线观看中文 |