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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

enum高级教程

發布時間:2023/12/3 综合教程 43 生活家
生活随笔 收集整理的這篇文章主要介紹了 enum高级教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文是一篇詳細且具有實戰意義的教程,涵蓋幾乎所有枚舉(Enum)知識點,為你解答Swift中枚舉的應用場合以及使用方法。

switch語句類似,Swift中的枚舉乍看之下更像是C語言中枚舉的進階版本,即允許你定義一種類型,用于表示普通事情中某種用例。不過深入挖掘之后,憑借Swift背后特別的設計理念,相比較C語言枚舉來說其在實際場景中的應用更為廣泛。特別是作為強大的工具,Swift中的枚舉能夠清晰表達代碼的意圖。

本文中,我們將首先了解基礎語法和使用枚舉的可能性,接著通過實戰教你如何以及何時使用枚舉。最后我們還會大致了解下Swift標準庫中枚舉是如何被使用的。

枚舉的定義
枚舉聲明的類型是囊括可能狀態的有限集,且可以具有附加值。
通過內嵌(nesting),方法(method),關聯值(associated values)和模式匹配(pattern matching),枚舉可以分層次地定義任何有組織的數據。

深入理解(Diving In)
簡要概述如何定義和使用枚舉。

  • 定義基本的枚舉類型(Defining Basic Enums)
    試想我們正在開發一款游戲,玩家能夠朝四個方向移動。所以嘍,玩家的運動軌跡受到了限制。顯然,我們能夠使用枚舉來表述這一情況:
enum Movement{case Leftcase Rightcase Topcase Bottom
}
  • 緊接著,你可以使用多種模式匹配結構獲取到Movement的枚舉值,或者按照特定情況執行操作:
let aMovement = Movement.Left// switch 分情況處理
switch aMovement{
case .Left: print("left")
default:()
}// 明確的case情況
if case .Left = aMovement{print("left")
}if aMovement == .Left { print("left") }

案例中,我們無須明確指出enum的實際名稱(即case Move.Left:print("Left"))。因為類型檢查器能夠自動為此進行類型推算。這對于那些UIKit以及AppKit中錯綜復雜的枚舉是灰常有用的。

  • 枚舉值(Enum Values)
    當然,你可能想要為enum中每個case分配一個值。這相當有用,比如枚舉自身實際與某事或某物掛鉤時,往往這些東西又需要使用不同類型來表述。在C語言中,你只能為枚舉case分配整型值,而Swift則提供了更多的靈活性。
// 映射到整型
enum Movement: Int {case Left = 0case Right = 1case Top = 2case Bottom = 3
}
// 同樣你可以與字符串一一對應
enum House: String {case Baratheon = "Ours is the Fury"case Greyjoy = "We Do Not Sow"case Martell = "Unbowed, Unbent, Unbroken"case Stark = "Winter is Coming"case Tully = "Family, Duty, Honor"case Tyrell = "Growing Strong"
}
// 或者float double都可以(同時注意枚舉中的花式unicode)
enum Constants: Double {case π = 3.14159case e = 2.71828case φ = 1.61803398874case λ = 1.30357
}

對于StringInt類型來說,你甚至可以忽略為枚舉中的case賦值,Swift編譯器也能正常工作。

// Mercury = 1, Venus = 2, ... Neptune = 8
enum Planet: Int {case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}
// North = "North", ... West = "West"
// 譯者注: 這個是swift2.0新增語法
enum CompassPoint: String {case North, South, East, West
}

Swift枚舉中支持以下四種關聯值類型:

整型(Integer)
浮點數(Float Point)
字符串(String)
布爾類型(Boolean)

因此你無法為枚舉分配諸如CGPoint類型的值。

倘若你想要讀取枚舉的值,可以通過rawValue屬性來實現:

let bestHouse = House.Stark
print(bestHouse.rawValue)
// prints "Winter is coming"

不過某種情形下,你可能想要通過一個已有的raw value來創建一個enum case。這種情況下,枚舉提供了一個指定構造方法:

enum Movement: Int {case Left = 0case Right = 1case Top = 2case Bottom = 3
}
// 創建一個movement.Right 用例,其raw value值為1
let rightMovement = Movement(rawValue: 1)

倘若使用rawValue構造器,切記它是一個可失敗構造器(failable initializer)。換言之,構造方法返回值為可選類型值,因為有時候傳入的值可能與任意一個case都不匹配。比如Movement(rawValue:42)

如果你想要以底層 C 二進制編碼形式呈現某物或某事,使得更具可讀性,這是一個非常有用的功能。例如,可以看一下BSD kqeue library中的VNode Flags標志位的編碼方式:

enum VNodeFlags : UInt32 {case Delete = 0x00000001case Write = 0x00000002case Extended = 0x00000004case Attrib = 0x00000008case Link = 0x00000010case Rename = 0x00000020case Revoke = 0x00000040case None = 0x00000080
}

如此便可以使你的DeleteWrite用例聲明一目了然,稍后一旦需要,只需將raw value傳入 C 函數中即可。

  • 嵌套枚舉(Nesting Enums)
    如果你有特定子類型的需求,可以對enum進行嵌套。這樣就允許你為實際的enum中包含其他明確信息的enum。以RPG游戲中的每個角色為例,每個角色能夠擁有武器,因此所有角色都可以獲取同一個武器集合。而游戲中的其他實例則無法獲取這些武器(比如食人魔,它們僅使用棍棒)。
enum Character {enum Weapon {case Bowcase Swordcase Lancecase Dagger}enum Helmet {case Woodencase Ironcase Diamond}case Thiefcase Warriorcase Knight
}

現在,你可以通過層級結構來描述角色允許訪問的項目條。

let character = Character.Thief
let weapon = Character.Weapon.Bow
let helmet = Character.Helmet.Iron
  • 包含枚舉(Containing Enums)
    同樣地,你也能夠在structsclasses中內嵌枚舉。接著上面的例子:
struct Character {enum CharacterType {case Thiefcase Warriorcase Knight}enum Weapon {case Bowcase Swordcase Lancecase Dagger}let type: CharacterTypelet weapon: Weapon
}
let warrior = Character(type: .Warrior, weapon: .Sword)

同樣地,這也將有助于我們將相關的信息集中在一個位置。

  • 關聯值(Associated Value)
    關聯值是將額外信息附加到enum case中的一種極好的方式。打個比方,你正在開發一款交易引擎,可能存在買和賣兩種不同的交易類型。除此之外每手交易還要制定明確的股票名稱和交易數量:

  • 簡單例程(Simple Example)

enum Trade {case Buycase Sell
}
func trade(tradeType: Trade, stock: String, amount: Int) {}

然而股票的價值和數量顯然從屬于交易,讓他們作為獨立的參數顯得模棱兩可。你可能已經想到要往struct中內嵌一個枚舉了,不過關聯值提供了一種更清爽的解決方案:

enum Trade {case Buy(stock: String, amount: Int)case Sell(stock: String, amount: Int)
}
func trade(type: Trade) {}
  • 模式匹配(Pattern Mathching)

如果你想要訪問這些值,模式匹配再次救場:

let trade = Trade.Buy(stock: "APPL", amount: 500)
if case let Trade.Buy(stock, amount) = trade {print("buy \(amount) of \(stock)")
}
  • 標簽(Labels)

關聯值不需要附加標簽的聲明:

enum Trade {case Buy(String, Int)case Sell(String, Int)
}

倘若你添加了,那么,每當創建枚舉用例時,你都需要將這些標簽標示出來。

  • (元組參數)Tuple as Arguments

更重要的是,Swift內部相關信息其實是一個元組,所以你可以像下面這樣做:

let tp = (stock: "TSLA", amount: 100)
let trade = Trade.Sell(tp)if case let Trade.Sell(stock, amount) = trade {print("buy \(amount) of \(stock)")
}
// Prints: "buy 100 of TSLA"

語法允許您將元組當作一個簡單的數據結構,稍后元組將自動轉換到高級類型,就比如enum case。想象一個應用程序可以讓用戶來配置電腦:

typealias Config = (RAM: Int, CPU: String, GPU: String)// Each of these takes a config and returns an updated config
func selectRAM(_ config: Config) -> Config {return (RAM: 32, CPU: config.CPU, GPU: config.GPU)}
func selectCPU(_ config: Config) -> Config {return (RAM: config.RAM, CPU: "3.2GHZ", GPU: config.GPU)}
func selectGPU(_ config: Config) -> Config {return (RAM: config.RAM, CPU: "3.2GHZ", GPU: "NVidia")}enum Desktop {case Cube(Config)case Tower(Config)case Rack(Config)
}let aTower = Desktop.Tower(selectGPU(selectCPU(selectRAM((0, "", "") as Config))))

配置的每個步驟均通過遞交元組到enum中進行內容更新。倘若我們從函數式編程2中獲得啟發,這將變得更好。

infix operator <^> { associativity left }func <^>(a: Config, f: (Config) -> Config) -> Config { return f(a)
}

最后,我們可以將不同配置步驟串聯起來。這在配置步驟繁多的情況下相當有用。

let config = (0, "", "") <^> selectRAM  <^> selectCPU <^> selectGPU
let aCube = Desktop.Cube(config)
  • 使用案例(Use Case Example)

關聯值可以以多種方式使用。常言道:一碼勝千言, 下面就上幾段簡單的示例代碼,這幾段代碼沒有特定的順序。

// 擁有不同值的用例
enum UserAction {case OpenURL(url: NSURL)case SwitchProcess(processId: UInt32)case Restart(time: NSDate?, intoCommandLine: Bool)
}
// 假設你在實現一個功能強大的編輯器,這個編輯器允許多重選擇,
// 正如 Sublime Text : https://www.youtube.com/watch?v=i2SVJa2EGIw
enum Selection {case Nonecase Single(Range<Int>)case Multiple([Range<Int>])
}
// 或者映射不同的標識碼
enum Barcode {case UPCA(numberSystem: Int, manufacturer: Int, product: Int, check: Int)case QRCode(productCode: String)
}
// 又或者假設你在封裝一個 C 語言庫,正如 Kqeue BSD/Darwin 通知系統:
// https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2
enum KqueueEvent {case UserEvent(identifier: UInt, fflags: [UInt32], data: Int)case ReadFD(fd: UInt, data: Int)case WriteFD(fd: UInt, data: Int)case VnodeFD(fd: UInt, fflags: [UInt32], data: Int)case ErrorEvent(code: UInt, message: String)
}
// 最后, 一個 RPG 游戲中的所有可穿戴裝備可以使用一個枚舉來進行映射,
// 可以為一個裝備增加重量和持久兩個屬性
// 現在可以僅用一行代碼來增加一個"鉆石"屬性,如此一來我們便可以增加幾件新的鑲嵌鉆石的可穿戴裝備
enum Wearable {enum Weight: Int {case Light = 1case Mid = 4case Heavy = 10}enum Armor: Int {case Light = 2case Strong = 8case Heavy = 20}case Helmet(weight: Weight, armor: Armor)case Breastplate(weight: Weight, armor: Armor)case Shield(weight: Weight, armor: Armor)
}
let woodenHelmet = Wearable.Helmet(weight: .Light, armor: .Light)
  • 方法和屬性(Methods and properties)
    你也可以在enum中像這樣定義方法:
enum Wearable {enum Weight: Int {case Light = 1}enum Armor: Int {case Light = 2}case Helmet(weight: Weight, armor: Armor)func attributes() -> (weight: Int, armor: Int) {switch self {case .Helmet(let w, let a): return (weight: w.rawValue * 2, armor: w.rawValue * 4)}}
}
let woodenHelmetProps = Wearable.Helmet(weight: .Light, armor: .Light).attributes()
print (woodenHelmetProps)
// prints "(2, 4)"

枚舉中的方法為每一個enum case而“生”。所以倘若想要在特定情況執行特定代碼的話,你需要分支處理或采用switch語句來明確正確的代碼路徑。

enum Device { case iPad, iPhone, AppleTV, AppleWatch func introduced() -> String {switch self {case AppleTV: return "\(self) was introduced 2006"case iPhone: return "\(self) was introduced 2007"case iPad: return "\(self) was introduced 2010"case AppleWatch: return "\(self) was introduced 2014"}}
}
print (Device.iPhone.introduced())
// prints: "iPhone was introduced 2007"
  • 屬性(Properties)

盡管增加一個存儲屬性到枚舉中不被允許,但你依然能夠創建計算屬性。當然,計算屬性的內容都是建立在枚舉值下或者枚舉關聯值得到的。

enum Device {case iPad, iPhonevar year: Int {switch self {case iPhone: return 2007case iPad: return 2010}}
}
  • 靜態方法(Static Methods)

你也能夠為枚舉創建一些靜態方法(static methods)。換言之通過一個非枚舉類型來創建一個枚舉。在這個示例中,我們需要考慮用戶有時將蘋果設備叫錯的情況(比如AppleWatch叫成iWatch),需要返回一個合適的名稱。

enum Device { case AppleWatch static func fromSlang(term: String) -> Device? {if term == "iWatch" {return .AppleWatch}return nil}
}
print (Device.fromSlang("iWatch"))
  • 可變方法(Mutating Methods)

方法可以聲明為mutating。這樣就允許改變隱藏參數selfcase值了3。

enum TriStateSwitch {case Off, Low, Highmutating func next() {switch self {case Off:self = Lowcase Low:self = Highcase High:self = Off}}
}
var ovenLight = TriStateSwitch.Low
ovenLight.next()
// ovenLight 現在等于.On
ovenLight.next()
// ovenLight 現在等于.Off
  • 小結(To Recap)
    至此,我們已經大致了解了Swift中枚舉語法的基本用例。在開始邁向進階之路之前,讓我們重新審視文章開篇給出的定義,看看現在是否變得更清晰了。

枚舉聲明的類型是囊括可能狀態的有限集,且可以具有附加值。通過內嵌(nesting),方法(method),關聯值(associated values)模式匹配(pattern matching),枚舉可以分層次地定義任何有組織的數據。

現在我們已經對這個定義更加清晰了。確實,如果我們添加關聯值和嵌套,enum就看起來就像一個封閉的、簡化的struct。相比較struct,前者優勢體現在能夠為分類與層次結構編碼。

// Struct Example
struct Point { let x: Int, let y: Int }
struct Rect { let x: Int, let y: Int, let width: Int, let height: Int }// Enum Example
enum GeometricEntity {case Point(x: Int, y: Int)case Rect(x: Int, y: Int, width: Int, height: Int)
}

方法和靜態方法的添加允許我們為enum附加功能,這意味著無須依靠額外函數就能實現4。

// C-Like example
enum Trade {case Buycase Sell
}
func order(trade: Trade)// Swift Enum example
enum Trade {case Buycase Sellfunc order()
}

枚舉進階(Advanced Enum Usage)

  • 協議(Protocols)
    我已經提及了structsenums之間的相似性。除了附加方法的能力之外,Swift也允許你在枚舉中使用協議(Protocols)協議擴展(Protocol Extension)。

Swift協議定義一個接口或類型以供其他數據結構來遵循。enum當然也不例外。我們先從Swift標準庫中的一個例子開始.

CustomStringConvertible是一個以打印為目的的自定義格式化輸出的類型。

protocol CustomStringConvertible {var description: String { get }
}

該協議只有一個要求,即一個只讀(getter)類型的字符串(String類型)。我們可以很容易為enum實現這個協議。

enum Trade: CustomStringConvertible {case Buy, Sellvar description: String {switch self {case Buy: return "We're buying something"case Sell: return "We're selling something"}}
}let action = Trade.Buy
print("this action is \(action)")
// prints: this action is We're buying something

一些協議的實現可能需要根據內部狀態來相應處理要求。例如定義一個管理銀行賬號的協議。

protocol AccountCompatible {var remainingFunds: Int { get }mutating func addFunds(amount: Int) throwsmutating func removeFunds(amount: Int) throws
}

你也許會簡單地拿struct實現這個協議,但是考慮應用的上下文,enum是一個更明智的處理方法。不過你無法添加一個存儲屬性到enum中,就像var remainingFuns:Int。那么你會如何構造呢?答案灰常簡單,你可以使用關聯值完美解決:

enum Account {case Emptycase Funds(remaining: Int)enum Error: ErrorType {case Overdraft(amount: Int)}var remainingFunds: Int {switch self {case Empty: return 0case Funds(let remaining): return remaining}}
}

為了保持代碼清爽,我們可以在enum協議擴展(protocl extension)中定義必須的協議函數:

extension Account: AccountCompatible {mutating func addFunds(amount: Int) throws {var newAmount = amountif case let .Funds(remaining) = self {newAmount += remaining}if newAmount < 0 {throw Error.Overdraft(amount: -newAmount)} else if newAmount == 0 {self = .Empty} else {self = .Funds(remaining: newAmount)}}mutating func removeFunds(amount: Int) throws {try self.addFunds(amount * -1)}}
var account = Account.Funds(remaining: 20)
print("add: ", try? account.addFunds(10))
print ("remove 1: ", try? account.removeFunds(15))
print ("remove 2: ", try? account.removeFunds(55))
// prints:
// : add:  Optional(())
// : remove 1:  Optional(())
// : remove 2:  nil

正如你所看見的,我們通過將值存儲到enum cases中實現了協議所有要求項。如此做法還有一個妙不可言的地方:現在整個代碼基礎上你只需要一個模式匹配就能測試空賬號輸入的情況。你不需要關心剩余資金是否等于零。

同時,我們也在賬號(Accout)中內嵌了一個遵循ErrorType協議的枚舉,這樣我們就可以使用Swift2.0語法來進行錯誤處理了。這里給出更詳細的使用案例教程。

  • 擴展(Extensions)
    正如剛才所見,枚舉也可以進行擴展。最明顯的用例就是將枚舉的casemethod分離,這樣閱讀你的代碼能夠簡單快速地消化掉enum內容,緊接著轉移到方法定義:
enum Entities {case Soldier(x: Int, y: Int)case Tank(x: Int, y: Int)case Player(x: Int, y: Int)
}

現在,我們為enum擴展方法:

extension Entities {mutating func move(dist: CGVector) {}mutating func attack() {}
}

你同樣可以通過寫一個擴展來遵循一個特定的協議:

extension Entities: CustomStringConvertible {var description: String {switch self {case let .Soldier(x, y): return "\(x), \(y)"case let .Tank(x, y): return "\(x), \(y)"case let .Player(x, y): return "\(x), \(y)"}}
}
  • 枚舉泛型(Generic Enums)
    枚舉也支持泛型參數定義。你可以使用它們以適應枚舉中的關聯值。就拿直接來自Swift標準庫中的簡單例子來說,即Optional類型。你主要可能通過以下幾種方式使用它:可選鏈(optional chaining(?))if-let可選綁定、guard let、或switch,但是從語法角度來說你也可以這么使用Optional:
let aValue = Optional<Int>.Some(5)
let noValue = Optional<Int>.None
if noValue == Optional.None { print("No value") }

這是Optional最直接的用例,并未使用任何語法糖,但是不可否認Swift中語法糖的加入使得你的工作更簡單。如果你觀察上面的實例代碼,你恐怕已經猜到Optional內部實現是這樣的5:

// Simplified implementation of Swift's Optional
enum MyOptional<T> {case Some(T)case None
}

這里有啥特別呢?注意枚舉的關聯值采用泛型參數T作為自身類型,這樣可選類型構造任何你想要的返回值。

枚舉可以擁有多個泛型參數。就拿熟知的Either類為例,它并非是Swift標準庫中的一部分,而是實現于眾多開源庫以及
其他函數式編程語言,比如HaskellF#。設計想法是這樣的:相比較僅僅返回一個值或沒有值(née Optional),你更期望返回一個成功值或者一些反饋信息(比如錯誤值)。

// The well-known either type is, of course, an enum that allows you to return either
// value one (say, a successful value) or value two (say an error) from a function
enum Either<T1, T2> {case Left(T1)case Right(T2)
}

最后,Swift中所有在classstruct中奏效的類型約束,在enum中同樣適用。

// Totally nonsensical example. A bag that is either full (has an array with contents)
// or empty.
enum Bag<T: SequenceType where T.Generator.Element==Equatable> {case Emptycase Full(contents: T)
}
  • 遞歸 / 間接(Indirect)類型
    間接類型是 Swift 2.0 新增的一個類型。 它們允許將枚舉中一個 case 的關聯值再次定義為枚舉。舉個例子,假設我們想定義一個文件系統,用來表示文件以及包含文件的目錄。如果將文件和目錄定義為枚舉的 case,則目錄 case 的關聯值應該再包含一個文件的數組作為它的關聯值。因為這是一個遞歸的操作,編譯器需要對此進行一個特殊的準備。Swift 文檔中是這么寫的:

枚舉和 case 可以被標記為間接的(indrect),這意味它們的關聯值是被間接保存的,這允許我們定義遞歸的數據結構。

所以,如果我們要定義 FileNode 的枚舉,它應該會是這樣的:

enum FileNode {case File(name: String)indirect case Folder(name: String, files: [FileNode])
}

此處的 indrect 關鍵字告訴編譯器間接地處理這個枚舉的 case。也可以對整個枚舉類型使用這個關鍵字。作為例子,我們來定義一個二叉樹:

indirect enum Tree<Element: Comparable> {case Emptycase Node(Tree<Element>,Element,Tree<Element>)
}

這是一個很強大的特性,可以讓我們用非常簡潔的方式來定義一個有著復雜關聯的數據結構。

  • 使用自定義類型作為枚舉的值
    如果我們忽略關聯值,則枚舉的值就只能是整型,浮點型,字符串和布爾類型。如果想要支持別的類型,則可以通過實現 StringLiteralConvertible 協議來完成,這可以讓我們通過對字符串的序列化和反序列化來使枚舉支持自定義類型。

作為一個例子,假設我們要定義一個枚舉來保存不同的 iOS 設備的屏幕尺寸:

enum Devices: CGSize {case iPhone3GS = CGSize(width: 320, height: 480)case iPhone5 = CGSize(width: 320, height: 568)case iPhone6 = CGSize(width: 375, height: 667)case iPhone6Plus = CGSize(width: 414, height: 736)
}

然而,這段代碼不能通過編譯。因為 CGPoint 并不是一個常量,不能用來定義枚舉的值。我們需要為想要支持的自定義類型增加一個擴展,讓其實現 StringLiteralConvertible 協議。這個協議要求我們實現三個構造方法,這三個方法都需要使用一個String類型的參數,并且我們需要將這個字符串轉換成我們需要的類型(此處是CGSize)。

extension CGSize: StringLiteralConvertible {public init(stringLiteral value: String) {let size = CGSizeFromString(value)self.init(width: size.width, height: size.height)}public init(extendedGraphemeClusterLiteral value: String) {let size = CGSizeFromString(value)self.init(width: size.width, height: size.height)}public init(unicodeScalarLiteral value: String) {let size = CGSizeFromString(value)self.init(width: size.width, height: size.height)}
}

現在就可以來實現我們需要的枚舉了,不過這里有一個缺點:初始化的值必須寫成字符串形式,因為這就是我們定義的枚舉需要接受的類型(記住,我們實現了 StringLiteralConvertible,因此String可以轉化成CGSize類型)

enum Devices: CGSize {case iPhone3GS = "{320, 480}"case iPhone5 = "{320, 568}"case iPhone6 = "{375, 667}"case iPhone6Plus = "{414, 736}"
}

終于,我們可以使用 CGPoint 類型的枚舉了。需要注意的是,當要獲取真實的 CGPoint 的值的時候,我們需要訪問枚舉的是 rawValue 屬性。

let a = Devices.iPhone5
let b = a.rawValue
print("the phone size string is \(a), width is \(b.width), height is \(b.height)")
// prints : the phone size string is iPhone5, width is 320.0, height is 568.0

使用字符串序列化的形式,會讓使用自定義類型的枚舉比較困難,然而在某些特定的情況下,這也會給我們增加不少便利(比較使用NSColor / UIColor的時候)。不僅如此,我們完全可以對自己定義的類型使用這個方法。

  • 對枚舉的關聯值進行比較
    在通常情況下,枚舉是很容易進行相等性判斷的。一個簡單的 enum T { case a, b } 實現默認支持相等性判斷 T.a == T.b, T.b != T.a

然而,一旦我們為枚舉增加了關聯值,Swift 就沒有辦法正確地為兩個枚舉進行相等性判斷,需要我們自己實現 == 運行符。這并不是很困難:

enum Trade {case Buy(stock: String, amount: Int)case Sell(stock: String, amount: Int)
}
func ==(lhs: Trade, rhs: Trade) -> Bool {switch (lhs, rhs) {case let (.Buy(stock1, amount1), .Buy(stock2, amount2))where stock1 == stock2 && amount1 == amount2:return truecase let (.Sell(stock1, amount1), .Sell(stock2, amount2))where stock1 == stock2 && amount1 == amount2:return truedefault: return false}
}

正如我們所見,我們通過 switch 語句對兩個枚舉的 case 進行判斷,并且只有當它們的 case 是匹配的時候(比如 Buy 和 Buy)才對它們的真實關聯值進行判斷。

  • 自定義構造方法
    在 靜態方法 一節當中我們已經提到它們可以作為從不同數據構造枚舉的方便形式。在之前的例子里也展示過,對出版社經常誤用的蘋果設備名返回正確的名字:
enum Device { case AppleWatch static func fromSlang(term: String) -> Device? {if term == "iWatch" {return .AppleWatch}return nil}
}

我們也可以使用自定義構造方法來替換靜態方法。枚舉與結構體和類的構造方法最大的不同在于,枚舉的構造方法需要將隱式的 self 屬性設置為正確的 case。

enum Device { case AppleWatch init?(term: String) {if term == "iWatch" {self = .AppleWatch}return nil}
}

在這個例子中,我們使用了可失敗(failable)的構造方法。但是,普通的構造方法也可以工作得很好:

enum NumberCategory {case Smallcase Mediumcase Bigcase Hugeinit(number n: Int) {if n < 10000 { self = .Small }else if n < 1000000 { self = .Medium }else if n < 100000000 { self = .Big }else { self = .Huge }}
}
let aNumber = NumberCategory(number: 100)
print(aNumber)
// prints: "Small"
  • 對枚舉的 case 進行迭代
    一個特別經常被問到的問題就是如何對枚舉中的 case 進行迭代??上У氖?#xff0c;枚舉并沒有遵守SequenceType協議,因此沒有一個官方的做法來對其進行迭代。取決于枚舉的類型,對其進行迭代可能也簡單,也有可能很困難。在StackOverflow上有一個很好的討論貼。貼子里面討論到的不同情況太多了,如果只在這里摘取一些會有片面性,而如果將全部情況都列出來,則會太多。

  • 對 Objective-C 的支持
    基于整型的枚舉,如 enum Bit: Int { case Zero = 0; case One = 1 } 可以通過 @objc 標識來將其橋接到 Objective-C 當中。然而,一旦使用整型之外的類型(如 String)或者開始使用關聯值,我們就無法在 Objective-C 當中使用這些枚舉了。

有一個名為_ObjectiveCBridgeable的隱藏協議,可以讓規范我們以定義合適的方法,如此一來,Swift 便可以正確地將枚舉轉成 Objective-C 類型,但我猜這個協議被隱藏起來一定是有原因的。然而,從理論上來講,這個協議還是允許我們將枚舉(包括其實枚舉值)正確地橋接到 Objective-C 當中。

但是,我們并不一定非要使用上面提到的這個方法。為枚舉添加兩個方法,使用 @objc 定義一個替代類型,如此一來我們便可以自由地將枚舉進行轉換了,并且這種方式不需要遵守私有協議:

enum Trade {case Buy(stock: String, amount: Int)case Sell(stock: String, amount: Int)
}
// 這個類型也可以定義在 Objective-C 的代碼中
@objc class OTrade: NSObject {var type: Intvar stock: Stringvar amount: Intinit(type: Int, stock: String, amount: Int) {self.type = typeself.stock = stockself.amount = amount}
}extension Trade  {func toObjc() -> OTrade {switch self {case let .Buy(stock, amount):return OTrade(type: 0, stock: stock, amount: amount)case let .Sell(stock, amount):return OTrade(type: 1, stock: stock, amount: amount)}}static func fromObjc(source: OTrade) -> Trade? {switch (source.type) {case 0: return Trade.Buy(stock: source.stock, amount: source.amount)case 1: return Trade.Sell(stock: source.stock, amount: source.amount)default: return nil}}
}

這個方法有一個的缺點,我們需要將枚舉映射為 Objective-C 中的 NSObject 基礎類型(我們也可以直接使用 NSDictionary),但是,當我們碰到一些確實需要在 Objective-C 當中獲取有關聯值的枚舉時,這是一個可以使用的方法。

  • 枚舉底層
    Erica Sadun 寫過一篇很流弊的關于枚舉底層的博客,涉及到枚舉底層的方方面面。在生產代碼中絕不應該使用到這些東西,但是學習一下還是相當有趣的。在這里,我準備只提到那篇博客中一條,如果想了解更多,請移步到原文:

枚舉通常都是一個字節長度。[…]如果你真的很傻很天真,你當然可以定義一個有成百上千個 case 的枚舉,在這種情況下,取決于最少所需要的比特數,枚舉可能占據兩個字節或者更多。

  • Swift 標準庫中的枚舉
    在我們準備繼續探索枚舉在項目中的不同用例之前,先看一下在 Swift 標準庫當中是如何使用枚舉可能會更誘人,所以現在讓我們先來看看。

Bit 這個枚舉有兩個值,One 和 Zero。它被作為 CollectionOfOne 中的 Index 類型。

FloatingPointClassification 這個枚舉定義了一系列 IEEE 754 可能的類別,比如 NegativeInfinity, PositiveZero 或 SignalingNaN。

Mirror.AncestorRepresentation 和 Mirror.DisplayStyle 這兩個枚舉被用在 Swift 反射 API 的上下文當中。

Optional 這個就不用多說了

Process 這個枚舉包含了當前進程的命令行參數(Process.argc, Process.arguments)。這是一個相當有趣的枚舉類型,因為在 Swift 1.0 當中,它是被作為一個結構體來實現的。

實踐用例

我們已經在前面幾個小節當中看過了許多有用的枚舉類型。包括 Optional,Either, FileNode 還有二叉樹。然而,還存在很多場合,使用枚舉要勝過使用結構體和類。一般來講,如果問題可以被分解為有限的不同類別,則使用枚舉應該就是正確的選擇。即使只有兩種 case,這也是一個使用枚舉的完美場景,正如 Optional 和 Either 類型所展示的。

以下列舉了一些枚舉類型在實戰中的使用示例,可以用來點燃你的創造力。

  • 錯誤處理
    說到枚舉的實踐使用,當然少不了在 Swift 2.0 當中新推出的錯誤處理。標記為可拋出的函數可以拋出任何遵守了 ErrorType 空協議的類型。正如 Swift 官方文檔中所寫的:

Swift 的枚舉特別適用于構建一組相關的錯誤狀態,可以通過關聯值來為其增加額外的附加信息。

作為一個示例,我們來看下流行的JSON解析框架 Argo。當 JSON 解析失敗的時候,它有可能是以下兩種主要原因:

JSON 數據缺少某些最終模型所需要的鍵(比如你的模型有一個 username 的屬性,但是 JSON 中缺少了)
存在類型不匹配,比如說 username 需要的是 String 類型,而 JSON 中包含的是 NSNull6。
除此之外,Argo 還為不包含在上述兩個類別中的錯誤提供了自定義錯誤。它們的 ErrorType 枚舉是類似這樣的:

enum DecodeError: ErrorType {case TypeMismatch(expected: String, actual: String)case MissingKey(String)case Custom(String)
}

所有的 case 都有一個關聯值用來包含關于錯誤的附加信息。

一個更加通用的用于完整 HTTP / REST API 錯誤處理的ErrorType應該是類似這樣的:

enum APIError : ErrorType {// Can't connect to the server (maybe offline?)case ConnectionError(error: NSError)// The server responded with a non 200 status codecase ServerError(statusCode: Int, error: NSError)// We got no data (0 bytes) back from the servercase NoDataError// The server response can't be converted from JSON to a Dictionarycase JSONSerializationError(error: ErrorType)// The Argo decoding Failedcase JSONMappingError(converstionError: DecodeError)
}

這個 ErrorType 實現了完整的 REST 程序棧解析有可能出現的錯誤,包含了所有在解析結構體與類時會出現的錯誤。

如果你看得夠仔細,會發現在JSONMappingError中,我們將Argo中的DecodeError封裝到了我們的APIError類型當中,因為我們會用 Argo 來作實際的 JSON 解析。

更多關于ErrorType以及此種枚舉類型的示例可以參看官方文檔。

  • 觀察者模式
    在 Swift 當中,有許多方法來構建觀察模式。如果使用 @objc 兼容標記,則我們可以使用 NSNotificationCenter 或者 KVO。即使不用這個標記,didSet語法也可以很容易地實現簡單的觀察模式。在這里可以使用枚舉,它可以使被觀察者的變化更加清晰明了。設想我們要對一個集合進行觀察。如果我們稍微思考一下就會發現這只有幾種可能的情況:一個或多個項被插入,一個或多個項被刪除,一個或多個項被更新。這聽起來就是枚舉可以完成的工作:
enum Change {case Insertion(items: [Item])case Deletion(items: [Item])case Update(items: [Item])
}

之后,觀察對象就可以使用一個很簡潔的方式來獲取已經發生的事情的詳細信息。這也可以通過為其增加 oldValue 和 newValue 的簡單方法來擴展它的功能。

  • 狀態碼
    如果我們正在使用一個外部系統,而這個系統使用了狀態碼(或者錯誤碼)來傳遞錯誤信息,類似 HTTP 狀態碼,這種情況下枚舉就是一種很明顯并且很好的方式來對信息進行封裝7 。
enum HttpError: String {case Code400 = "Bad Request"case Code401 = "Unauthorized"case Code402 = "Payment Required"case Code403 = "Forbidden"case Code404 = "Not Found"
}
  • 結果類型映射(Map Result Types)
    枚舉也經常被用于將 JSON 解析后的結果映射成 Swift 的原生類型。這里有一個簡短的例子:
enum JSON {case JSONString(Swift.String)case JSONNumber(Double)case JSONObject([String : JSONValue])case JSONArray([JSONValue])case JSONBool(Bool)case JSONNull
}

類似地,如果我們解析了其它的東西,也可以使用這種方式將解析結果轉化我們 Swift 的類型。

  • UIKit 標識
    枚舉可以用來將字符串類型的重用標識或者 storyboard 標識映射為類型系統可以進行檢查的類型。假設我們有一個擁有很多原型 Cell 的 UITableView:
enum CellType: String {case ButtonValueCell = "ButtonValueCell"case UnitEditCell = "UnitEditCell"case LabelCell = "LabelCell"case ResultLabelCell = "ResultLabelCell"
}
  • 單位
    單位以及單位轉換是另一個使用枚舉的絕佳場合。可以將單位及其對應的轉換率映射起來,然后添加方法來對單位進行自動的轉換。以下是一個相當簡單的示例:
enum Liquid: Float {case ml = 1.0case l = 1000.0func convert(amount amount: Float, to: Liquid) -> Float {if self.rawValue < to.rawValue {return (self.rawValue / to.rawValue) * amount} else {return (self.rawValue * to.rawValue) * amount}}
}
// Convert liters to milliliters
print (Liquid.l.convert(amount: 5, to: Liquid.ml))

另一個示例是貨幣的轉換。以及數學符號(比如角度與弧度)也可以從中受益。

  • 游戲
    游戲也是枚舉中的另一個相當好的用例,屏幕上的大多數實體都屬于一個特定種族的類型(敵人,障礙,紋理,…)。相對于本地的 iOS 或者 Mac 應用,游戲更像是一個白板。即開發游戲我們可以使用全新的對象以及全新的關聯創造一個全新的世界,而 iOS 或者 OSX 需要使用預定義的 UIButtons,UITableViews,UITableViewCells 或者 NSStackView.

不僅如此,由于枚舉可以遵守協議,我們可以利用協議擴展和基于協議的編程為不同為游戲定義的枚舉增加功能。這里是一個用來展示這種層級的的簡短示例:

enum FlyingBeast { case Dragon, Hippogriff, Gargoyle }
enum Horde { case Ork, Troll }
enum Player { case Mage, Warrior, Barbarian }
enum NPC { case Vendor, Blacksmith }
enum Element { case Tree, Fence, Stone }protocol Hurtable {}
protocol Killable {}
protocol Flying {}
protocol Attacking {}
protocol Obstacle {}extension FlyingBeast: Hurtable, Killable, Flying, Attacking {}
extension Horde: Hurtable, Killable, Attacking {}
extension Player: Hurtable, Obstacle {}
extension NPC: Hurtable {}
extension Element: Obstacle {}
  • 字符串類型化
    在一個稍微大一點的 Xcode 項目中,我們很快就會有一大堆通過字符串來訪問的資源。在前面的小節中,我們已經提過重用標識和 storyboard 的標識,但是除了這兩樣,還存在很多資源:圖像,Segues,Nibs,字體以及其它資源。通常情況下,這些資源都可以分成不同的集合。如果是這樣的話,一個類型化的字符串會是一個讓編譯器幫我們進行類型檢查的好方法。
enum DetailViewImages: String {case Background = "bg1.png"case Sidebar = "sbg.png"case ActionButton1 = "btn1_1.png"case ActionButton2 = "btn2_1.png"
}

對于 iOS 開發者,R.swift這個第三方庫可以為以上提到的情況自動生成結構體。但是有些時候你可能需要有更多的控制(或者你可能是一個Mac開發者8)。

  • API 端點
    Rest API 是枚舉的絕佳用例。它們都是分組的,它們都是有限的 API 集合,并且它們也可能會有附加的查詢或者命名的參數,而這可以使用關聯值來實現。

這里有個 Instagram API 的簡化版:

enum Instagram {enum Media {case Popularcase Shortcode(id: String)case Search(lat: Float, min_timestamp: Int, lng: Float, max_timestamp: Int, distance: Int)}enum Users {case User(id: String)case Feedcase Recent(id: String)}
}

Ash Furrow的Moya框架就是基本這個思想,使用枚舉對 rest 端點進行映射。

  • 鏈表
    Airspeed Velocity有一篇極好的文章說明了如何使用枚舉來實現一個鏈表。那篇文章中的大多數代碼都超出了枚舉的知識,并涉及到了大量其它有趣的主題9,但是,鏈表最基本的定義是類似這樣的(我對其進行了一些簡化):
enum List {case Endindirect case Node(Int, next: List)
}

每一個節點(Node) case 都指向了下一個 case, 通過使用枚舉而非其它類型,我們可以避免使用一個可選的 next 類型以用來表示鏈表的結束。

Airspeed Velocity 還寫過一篇超贊的博客,關于如何使用 Swift 的間接枚舉類型來實現紅黑樹,所以如果你已經閱讀過關于鏈表的博客,你可能想繼續閱讀這篇關于紅黑樹的博客。

  • 設置字典(Setting Dictionaries)
    這是 Erica Sadun 提出的非常非常機智的解決方案。簡單來講,就是任何我們需要用一個屬性的字典來對一個項進行設置的時候,都應該使用一系列有關聯值的枚舉來替代。使用這方法,類型檢查系統可以確保配置的值都是正確的類型。

關于更多的細節,以及合適的例子,可以閱讀下她的文章。

  • 局限
    與之前類似,我將會用一系列枚舉的局限性來結束本篇文章。

  • 提取關聯值
    David Owens寫過一篇文章,他覺得當前的關聯值提取方式是很笨重的。我墻裂推薦你去看一下他的原文,在這里我對它的要旨進行下說明:為了從一個枚舉中獲取關聯值,我們必須使用模式匹配。然而,關聯值就是關聯在特定枚舉 case 的高效元組。而元組是可以使用更簡單的方式來獲取它內部值,即 .keyword 或者 .0。

// Enums
enum Ex { case Mode(ab: Int, cd: Int) }
if case Ex.Mode(let ab, let cd) = Ex.Mode(ab: 4, cd: 5) {print(ab)
}
// vs tuples:
let tp = (ab: 4, cd: 5)
print(tp.ab)

如果你也同樣覺得我們應該使用相同的方法來對枚舉進行解構(deconstruct),這里有個 rdar: rdar://22704262 (譯者注:一開始我不明白 rdar 是啥意思,后來我 google 了下,如果你也有興趣,也可以自己去搜索一下)

  • 相等性
    擁有關聯值的枚舉沒有遵守 equatable 協議。這是一個遺憾,因為它為很多事情增加了不必要的復雜和麻煩。深層的原因可能是因為關聯值的底層使用是使用了元組,而元組并沒有遵守 equatable 協議。然而,對于限定的 case 子集,如果這些關聯值的類型都遵守了 equatable 類型,我認為編譯器應該默認為其生成 equatable 擴展。
// Int 和 String 是可判等的, 所以 Mode 應該也是可判等的
enum Ex { case Mode(ab: Int, cd: String) }
// Swift 應該能夠自動生成這個函數
func == (lhs: Ex.Mode, rhs: Ex.Mode) -> Bool {switch (lhs, rhs) {case (.Mode(let a, let b), .Mode(let c, let d)):return a == c && b == ddefault:return false}
}
  • 元組(Tuples)
    最大的問題就是對元組的支持。我喜歡使用元組,它們可以使很多事情變得更簡單,但是他們目前還處于無文檔狀態并且在很多場合都無法使用。在枚舉當中,我們無法使用元組作為枚舉的值:
enum Devices: (intro: Int, name: String) {case iPhone = (intro: 2007, name: "iPhone")case AppleTV = (intro: 2006, name: "Apple TV")case AppleWatch = (intro: 2014, name: "Apple Watch")
}

這似乎看起來并不是一個最好的示例,但是我們一旦開始使用枚舉,就會經常陷入到需要用到類似上面這個示例的情形中。

  • 迭代枚舉的所有case
    這個我們已經在前面討論過了。目前還沒有一個很好的方法來獲得枚舉中的所有 case 的集合以使我們可以對其進行迭代。

  • 默認關聯值
    另一個會碰到的事是枚舉的關聯值總是類型,但是我們卻無法為這些類型指定默認值。假設有這樣一種情況:

enum Characters {case Mage(health: Int = 70, magic: Int = 100, strength: Int = 30)case Warrior(health: Int = 100, magic: Int = 0, strength: Int = 100)case Neophyte(health: Int = 50, magic: Int = 20, strength: Int = 80)
}

我們依然可以使用不同的值創建新的 case,但是角色的默認設置依然會被映射。

總結

以上是生活随笔為你收集整理的enum高级教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品久久久久久无码 | 婷婷丁香五月天综合东京热 | 曰本女人与公拘交酡免费视频 | 丰满人妻一区二区三区免费视频 | 欧美黑人性暴力猛交喷水 | 少妇无套内谢久久久久 | 久久久av男人的天堂 | 欧美丰满熟妇xxxx性ppx人交 | 午夜精品一区二区三区的区别 | 亚洲 另类 在线 欧美 制服 | 黑森林福利视频导航 | 国产成人一区二区三区别 | 欧美怡红院免费全部视频 | 亚洲国产欧美日韩精品一区二区三区 | 国产av无码专区亚洲awww | 漂亮人妻洗澡被公强 日日躁 | 中国大陆精品视频xxxx | 无码人妻丰满熟妇区五十路百度 | 欧美 日韩 人妻 高清 中文 | 天堂а√在线地址中文在线 | 久久97精品久久久久久久不卡 | 国产精品成人av在线观看 | 无码乱肉视频免费大全合集 | 亚洲精品国产第一综合99久久 | 日日夜夜撸啊撸 | 内射白嫩少妇超碰 | 伊人久久大香线蕉午夜 | 欧美变态另类xxxx | 国内揄拍国内精品少妇国语 | 无遮挡啪啪摇乳动态图 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲人成影院在线无码按摩店 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 无码帝国www无码专区色综合 | 欧美日韩人成综合在线播放 | 欧美日本精品一区二区三区 | 人妻少妇精品无码专区二区 | 中文字幕乱码亚洲无线三区 | 国产9 9在线 | 中文 | 无码纯肉视频在线观看 | 国产一区二区三区四区五区加勒比 | 女人被爽到呻吟gif动态图视看 | 丰满人妻翻云覆雨呻吟视频 | 国产综合在线观看 | 夜夜高潮次次欢爽av女 | 最新版天堂资源中文官网 | 久久综合久久自在自线精品自 | 一本久道久久综合狠狠爱 | 九月婷婷人人澡人人添人人爽 | 国产小呦泬泬99精品 | 一区二区三区高清视频一 | 亚洲熟女一区二区三区 | 熟妇女人妻丰满少妇中文字幕 | 牲欲强的熟妇农村老妇女 | 亚洲男人av天堂午夜在 | 无码国产激情在线观看 | 久久99精品久久久久久动态图 | 一本久久伊人热热精品中文字幕 | 亚洲国产精品久久久久久 | 亚洲区欧美区综合区自拍区 | 久久99精品久久久久婷婷 | 正在播放东北夫妻内射 | 毛片内射-百度 | 国产精品久久久一区二区三区 | av无码不卡在线观看免费 | 六月丁香婷婷色狠狠久久 | 久久久久av无码免费网 | 波多野42部无码喷潮在线 | 亚洲综合无码一区二区三区 | 男女猛烈xx00免费视频试看 | 天堂在线观看www | 亚洲а∨天堂久久精品2021 | 日韩精品a片一区二区三区妖精 | 撕开奶罩揉吮奶头视频 | 色欲综合久久中文字幕网 | 欧美性生交xxxxx久久久 | 亚洲熟妇色xxxxx欧美老妇y | 中文字幕av伊人av无码av | 欧美三级不卡在线观看 | 国产精品人人爽人人做我的可爱 | 性色欲情网站iwww九文堂 | 2020久久超碰国产精品最新 | 国内揄拍国内精品人妻 | 国产人妻精品一区二区三区不卡 | 精品国产av色一区二区深夜久久 | 好男人www社区 | 99久久久无码国产aaa精品 | 欧美国产日韩亚洲中文 | 又色又爽又黄的美女裸体网站 | 国产精品久久久久久久9999 | av无码电影一区二区三区 | 久久亚洲中文字幕无码 | 国产亚洲人成a在线v网站 | 激情五月综合色婷婷一区二区 | 激情爆乳一区二区三区 | 娇妻被黑人粗大高潮白浆 | 欧美日韩在线亚洲综合国产人 | 久久99精品国产麻豆 | а√资源新版在线天堂 | 久久久亚洲欧洲日产国码αv | 亚洲中文字幕成人无码 | 水蜜桃亚洲一二三四在线 | 欧美性生交活xxxxxdddd | 少女韩国电视剧在线观看完整 | 久久午夜无码鲁丝片午夜精品 | 亚洲精品欧美二区三区中文字幕 | 国产极品美女高潮无套在线观看 | 色婷婷欧美在线播放内射 | 在线视频网站www色 | 丝袜足控一区二区三区 | 精品国产乱码久久久久乱码 | 国产精品亚洲lv粉色 | 少妇一晚三次一区二区三区 | 亚洲精品鲁一鲁一区二区三区 | 免费看少妇作爱视频 | 四虎永久在线精品免费网址 | 亚洲成色www久久网站 | 国产精品无码一区二区桃花视频 | 无码吃奶揉捏奶头高潮视频 | 亚洲欧美国产精品久久 | 动漫av一区二区在线观看 | 初尝人妻少妇中文字幕 | 亚洲成a人片在线观看无码 | 性欧美大战久久久久久久 | 国产9 9在线 | 中文 | 亚洲人成影院在线无码按摩店 | 成人欧美一区二区三区 | 国产舌乚八伦偷品w中 | 亚洲精品一区二区三区婷婷月 | 久久人人爽人人爽人人片av高清 | 日韩欧美群交p片內射中文 | 无码人妻黑人中文字幕 | 色综合久久中文娱乐网 | 中文精品久久久久人妻不卡 | 亚洲高清偷拍一区二区三区 | 麻豆果冻传媒2021精品传媒一区下载 | 国产精品亚洲а∨无码播放麻豆 | 色综合久久久无码网中文 | 亚洲经典千人经典日产 | 东京热一精品无码av | 国产激情无码一区二区app | 俄罗斯老熟妇色xxxx | 色五月五月丁香亚洲综合网 | 女人被爽到呻吟gif动态图视看 | 国产精品免费大片 | 日韩精品成人一区二区三区 | 色婷婷久久一区二区三区麻豆 | 国产av一区二区精品久久凹凸 | 亚洲欧美国产精品专区久久 | 亚洲欧美日韩国产精品一区二区 | 亚拍精品一区二区三区探花 | 国产绳艺sm调教室论坛 | 免费人成在线视频无码 | av香港经典三级级 在线 | 色欲久久久天天天综合网精品 | 国产亚洲精品久久久久久国模美 | 国产亲子乱弄免费视频 | 精品国产一区av天美传媒 | 四虎影视成人永久免费观看视频 | 999久久久国产精品消防器材 | 国模大胆一区二区三区 | 性啪啪chinese东北女人 | 色五月五月丁香亚洲综合网 | 自拍偷自拍亚洲精品10p | 少妇人妻av毛片在线看 | 精品无码av一区二区三区 | 亚洲国产高清在线观看视频 | 亚洲色欲色欲欲www在线 | 亚洲色成人中文字幕网站 | 美女黄网站人色视频免费国产 | 中文字幕乱码人妻无码久久 | 色综合久久88色综合天天 | 东京热无码av男人的天堂 | 亚欧洲精品在线视频免费观看 | 久久www免费人成人片 | 日日天日日夜日日摸 | 久久综合激激的五月天 | 狂野欧美性猛交免费视频 | 影音先锋中文字幕无码 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 中文毛片无遮挡高清免费 | 日韩精品无码一本二本三本色 | 免费无码一区二区三区蜜桃大 | 日韩人妻系列无码专区 | 成在人线av无码免观看麻豆 | 国产手机在线αⅴ片无码观看 | 亚洲自偷精品视频自拍 | 久精品国产欧美亚洲色aⅴ大片 | 国产麻豆精品精东影业av网站 | 中文字幕无码av波多野吉衣 | 网友自拍区视频精品 | 无码人妻黑人中文字幕 | 精品少妇爆乳无码av无码专区 | 亚洲男女内射在线播放 | 麻豆国产人妻欲求不满谁演的 | 97精品国产97久久久久久免费 | 日本成熟视频免费视频 | 无码纯肉视频在线观看 | 少妇一晚三次一区二区三区 | 国产精品久久久久久久影院 | 日本精品人妻无码免费大全 | 亚洲一区二区三区无码久久 | 性欧美牲交在线视频 | 少妇太爽了在线观看 | 国产人妻精品一区二区三区不卡 | 亚洲精品无码国产 | 久久精品丝袜高跟鞋 | 国语自产偷拍精品视频偷 | 激情五月综合色婷婷一区二区 | 成人免费视频在线观看 | 国产精品高潮呻吟av久久4虎 | 国产午夜亚洲精品不卡 | 麻豆果冻传媒2021精品传媒一区下载 | 人人妻人人澡人人爽人人精品 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 亚洲中文字幕无码中文字在线 | 国产精品人妻一区二区三区四 | 国产成人无码av一区二区 | 狠狠色噜噜狠狠狠7777奇米 | 欧洲精品码一区二区三区免费看 | 欧美freesex黑人又粗又大 | 精品国产一区二区三区四区在线看 | 性色欲网站人妻丰满中文久久不卡 | 国产成人无码a区在线观看视频app | 国产莉萝无码av在线播放 | 婷婷综合久久中文字幕蜜桃三电影 | 精品乱子伦一区二区三区 | 国产精品毛多多水多 | 亚洲色www成人永久网址 | 亚洲中文字幕无码中文字在线 | 日本一区二区三区免费高清 | 两性色午夜视频免费播放 | 久久久久久久久蜜桃 | 精品国产国产综合精品 | 夜先锋av资源网站 | 一本一道久久综合久久 | 国产无遮挡又黄又爽免费视频 | 性生交大片免费看女人按摩摩 | 欧美xxxx黑人又粗又长 | 亚洲熟妇自偷自拍另类 | 亚洲熟女一区二区三区 | 国产亲子乱弄免费视频 | 色狠狠av一区二区三区 | 欧美成人高清在线播放 | 国产成人无码av一区二区 | 奇米影视7777久久精品人人爽 | 激情内射亚州一区二区三区爱妻 | 亚洲精品久久久久中文第一幕 | 无码国模国产在线观看 | 国产手机在线αⅴ片无码观看 | 亚洲七七久久桃花影院 | 国产精品久久久久久亚洲影视内衣 | 在线 国产 欧美 亚洲 天堂 | 亚洲无人区一区二区三区 | 学生妹亚洲一区二区 | 曰韩无码二三区中文字幕 | 51国偷自产一区二区三区 | 国产精品亚洲综合色区韩国 | 国产 精品 自在自线 | 亚洲成av人片在线观看无码不卡 | 牛和人交xxxx欧美 | 水蜜桃av无码 | 给我免费的视频在线观看 | 婷婷丁香六月激情综合啪 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲精品国产精品乱码视色 | 亚洲呦女专区 | 综合激情五月综合激情五月激情1 | 久久久久成人片免费观看蜜芽 | 国产欧美精品一区二区三区 | 精品无码国产自产拍在线观看蜜 | 波多野结衣aⅴ在线 | 一本久道高清无码视频 | 国产无av码在线观看 | 大胆欧美熟妇xx | 玩弄少妇高潮ⅹxxxyw | 国产精品久久久久7777 | 国产av一区二区三区最新精品 | 久久综合给久久狠狠97色 | 88国产精品欧美一区二区三区 | 在线观看免费人成视频 | 日韩欧美群交p片內射中文 | 最近中文2019字幕第二页 | 亚洲精品国产品国语在线观看 | 亚洲欧美国产精品久久 | 国产成人亚洲综合无码 | 十八禁真人啪啪免费网站 | 国产又爽又猛又粗的视频a片 | 国产乱人伦偷精品视频 | 久久五月精品中文字幕 | 蜜桃视频韩日免费播放 | 国产成人无码av一区二区 | 动漫av一区二区在线观看 | 人人妻人人澡人人爽欧美一区 | 亚洲精品一区二区三区大桥未久 | 久久久精品国产sm最大网站 | а天堂中文在线官网 | 国精产品一品二品国精品69xx | 大地资源中文第3页 | 色综合视频一区二区三区 | 狠狠亚洲超碰狼人久久 | 无码av免费一区二区三区试看 | 精品无码国产一区二区三区av | 丰满诱人的人妻3 | 亚洲国产精品无码一区二区三区 | 蜜桃视频插满18在线观看 | 大地资源网第二页免费观看 | 国产美女极度色诱视频www | 亚洲国产精品久久人人爱 | 国产精品爱久久久久久久 | 在线a亚洲视频播放在线观看 | 97无码免费人妻超级碰碰夜夜 | 国产在线aaa片一区二区99 | 欧美午夜特黄aaaaaa片 | 中文字幕人成乱码熟女app | 国内精品九九久久久精品 | 亚洲 日韩 欧美 成人 在线观看 | 国产激情精品一区二区三区 | 99久久无码一区人妻 | 中文字幕无码人妻少妇免费 | 久久久精品欧美一区二区免费 | √天堂资源地址中文在线 | 日产精品高潮呻吟av久久 | 国产精品久久国产三级国 | 亚洲精品久久久久久一区二区 | 色婷婷综合中文久久一本 | 久久熟妇人妻午夜寂寞影院 | 在线看片无码永久免费视频 | 狠狠亚洲超碰狼人久久 | 国产又粗又硬又大爽黄老大爷视 | 国内精品人妻无码久久久影院蜜桃 | 中文字幕 亚洲精品 第1页 | 亚洲国产欧美在线成人 | 亚洲国产精品无码久久久久高潮 | 在线视频网站www色 | 久久亚洲中文字幕精品一区 | 久久伊人色av天堂九九小黄鸭 | 爆乳一区二区三区无码 | 亚洲综合伊人久久大杳蕉 | 麻豆成人精品国产免费 | 日韩av无码中文无码电影 | 久久亚洲精品中文字幕无男同 | 18禁止看的免费污网站 | 午夜福利试看120秒体验区 | 久久精品成人欧美大片 | 亚洲一区二区三区在线观看网站 | 小泽玛莉亚一区二区视频在线 | 2019午夜福利不卡片在线 | 国内丰满熟女出轨videos | 国产精品办公室沙发 | 久久99精品国产麻豆蜜芽 | 99久久人妻精品免费一区 | 无码国产乱人伦偷精品视频 | 亚洲一区二区三区播放 | 激情综合激情五月俺也去 | 国产69精品久久久久app下载 | 国产精品无码一区二区桃花视频 | 免费国产黄网站在线观看 | 国产乱人无码伦av在线a | 日本一区二区三区免费高清 | 人人澡人人妻人人爽人人蜜桃 | 亚洲男人av香蕉爽爽爽爽 | 免费无码的av片在线观看 | 欧美老妇与禽交 | 久久精品国产亚洲精品 | 初尝人妻少妇中文字幕 | 三上悠亚人妻中文字幕在线 | 人妻无码久久精品人妻 | 久久综合给合久久狠狠狠97色 | 国产又粗又硬又大爽黄老大爷视 | 精品夜夜澡人妻无码av蜜桃 | 国产sm调教视频在线观看 | 国产午夜手机精彩视频 | 99精品无人区乱码1区2区3区 | 国产精品久久久久9999小说 | 亚洲欧美日韩成人高清在线一区 | 男人的天堂2018无码 | 中文字幕人妻无码一夲道 | 清纯唯美经典一区二区 | 狠狠色色综合网站 | 久久婷婷五月综合色国产香蕉 | 丰满少妇熟乱xxxxx视频 | 国产综合在线观看 | 午夜丰满少妇性开放视频 | 51国偷自产一区二区三区 | 亚洲成av人在线观看网址 | 国产三级久久久精品麻豆三级 | 少妇被黑人到高潮喷出白浆 | 国产熟妇另类久久久久 | 亚洲va中文字幕无码久久不卡 | 久久aⅴ免费观看 | 亚洲gv猛男gv无码男同 | 国产性生大片免费观看性 | 午夜福利试看120秒体验区 | 亚洲啪av永久无码精品放毛片 | 欧美日韩综合一区二区三区 | 亚洲色偷偷男人的天堂 | 国产莉萝无码av在线播放 | 色噜噜亚洲男人的天堂 | 亚洲の无码国产の无码影院 | 精品久久久久久人妻无码中文字幕 | 久久久久亚洲精品男人的天堂 | 国产性生交xxxxx无码 | 大胆欧美熟妇xx | 久久久久se色偷偷亚洲精品av | 成人精品天堂一区二区三区 | 中文字幕日产无线码一区 | 夜精品a片一区二区三区无码白浆 | 精品国产一区二区三区四区 | 国产熟妇另类久久久久 | 小鲜肉自慰网站xnxx | 三级4级全黄60分钟 | 亚洲精品www久久久 | 黑森林福利视频导航 | 国产三级精品三级男人的天堂 | 国产高清不卡无码视频 | 免费国产黄网站在线观看 | 无码纯肉视频在线观看 | 婷婷五月综合激情中文字幕 | 狂野欧美激情性xxxx | 国产成人久久精品流白浆 | 午夜成人1000部免费视频 | 国产农村乱对白刺激视频 | 特大黑人娇小亚洲女 | 欧美熟妇另类久久久久久多毛 | 少妇人妻av毛片在线看 | 在线亚洲高清揄拍自拍一品区 | 久久久国产一区二区三区 | 国产成人人人97超碰超爽8 | 国产69精品久久久久app下载 | 撕开奶罩揉吮奶头视频 | 亚洲国产午夜精品理论片 | 曰韩无码二三区中文字幕 | 精品日本一区二区三区在线观看 | 老熟妇仑乱视频一区二区 | 久久亚洲精品中文字幕无男同 | 亚洲爆乳无码专区 | 色婷婷综合中文久久一本 | 国产va免费精品观看 | 一二三四社区在线中文视频 | 成人片黄网站色大片免费观看 | 成人精品视频一区二区三区尤物 | 精品久久久无码人妻字幂 | 亚洲gv猛男gv无码男同 | 中国女人内谢69xxxxxa片 | 丰满少妇女裸体bbw | 99久久精品无码一区二区毛片 | 无码国模国产在线观看 | 亚洲熟妇色xxxxx欧美老妇y | 久久精品国产精品国产精品污 | 欧美一区二区三区 | 国内少妇偷人精品视频 | 秋霞成人午夜鲁丝一区二区三区 | 午夜熟女插插xx免费视频 | 99久久精品午夜一区二区 | 国产亚av手机在线观看 | 小泽玛莉亚一区二区视频在线 | 国产精品福利视频导航 | 国产精品亚洲一区二区三区喷水 | 国产欧美精品一区二区三区 | 无码午夜成人1000部免费视频 | 无码成人精品区在线观看 | 国产综合色产在线精品 | 国内精品人妻无码久久久影院蜜桃 | 少妇性l交大片欧洲热妇乱xxx | 97精品国产97久久久久久免费 | 天海翼激烈高潮到腰振不止 | 国产高清av在线播放 | 激情五月综合色婷婷一区二区 | 欧美熟妇另类久久久久久多毛 | 日日躁夜夜躁狠狠躁 | 纯爱无遮挡h肉动漫在线播放 | 色妞www精品免费视频 | 欧美xxxxx精品 | 少妇太爽了在线观看 | 无码中文字幕色专区 | 日日摸天天摸爽爽狠狠97 | 亚洲国产精品一区二区第一页 | www国产精品内射老师 | 又色又爽又黄的美女裸体网站 | 少妇被黑人到高潮喷出白浆 | 日韩视频 中文字幕 视频一区 | 成人性做爰aaa片免费看不忠 | 国产成人综合色在线观看网站 | 国产真人无遮挡作爱免费视频 | 狂野欧美性猛交免费视频 | 7777奇米四色成人眼影 | 亚洲一区二区观看播放 | 免费人成在线观看网站 | 永久免费观看国产裸体美女 | 亚洲中文字幕在线观看 | 成人精品一区二区三区中文字幕 | 中文字幕 亚洲精品 第1页 | 国产成人无码a区在线观看视频app | 好爽又高潮了毛片免费下载 | 丰满人妻一区二区三区免费视频 | 无码中文字幕色专区 | 色爱情人网站 | 黑人巨大精品欧美黑寡妇 | 天天躁夜夜躁狠狠是什么心态 | 澳门永久av免费网站 | 熟妇人妻无码xxx视频 | 国产精品亚洲专区无码不卡 | 国产人妻人伦精品1国产丝袜 | 99久久人妻精品免费一区 | 日韩亚洲欧美精品综合 | 中文精品无码中文字幕无码专区 | 少妇人妻偷人精品无码视频 | 亚洲色欲久久久综合网东京热 | 99久久久无码国产精品免费 | 国产艳妇av在线观看果冻传媒 | 中文字幕人妻无码一区二区三区 | 国产激情综合五月久久 | 思思久久99热只有频精品66 | 人妻天天爽夜夜爽一区二区 | 亚洲精品无码人妻无码 | 青草青草久热国产精品 | 久久久久国色av免费观看性色 | 麻豆蜜桃av蜜臀av色欲av | 美女黄网站人色视频免费国产 | 四虎永久在线精品免费网址 | 国产黑色丝袜在线播放 | 国产精品久久久久无码av色戒 | 欧美亚洲日韩国产人成在线播放 | 国产成人精品无码播放 | 精品日本一区二区三区在线观看 | 欧美人与动性行为视频 | 毛片内射-百度 | 又大又黄又粗又爽的免费视频 | 国产麻豆精品一区二区三区v视界 | 免费看男女做好爽好硬视频 | 性欧美牲交在线视频 | 国产区女主播在线观看 | 国语精品一区二区三区 | 欧美激情内射喷水高潮 | 免费无码的av片在线观看 | 男女爱爱好爽视频免费看 | 无码人妻丰满熟妇区毛片18 | 兔费看少妇性l交大片免费 | 粉嫩少妇内射浓精videos | 六十路熟妇乱子伦 | 无码人妻av免费一区二区三区 | 香蕉久久久久久av成人 | 国产成人无码av一区二区 | 任你躁国产自任一区二区三区 | 亚洲男女内射在线播放 | 中文精品无码中文字幕无码专区 | 狠狠综合久久久久综合网 | 国产乱人偷精品人妻a片 | 国产精品美女久久久 | 欧美老妇与禽交 | 性色欲网站人妻丰满中文久久不卡 | 亚洲精品美女久久久久久久 | 国产乱子伦视频在线播放 | 樱花草在线播放免费中文 | 暴力强奷在线播放无码 | 国产精品美女久久久 | 国产成人无码av片在线观看不卡 | 欧美日韩视频无码一区二区三 | 久久久久av无码免费网 | 无遮无挡爽爽免费视频 | 无码成人精品区在线观看 | 青青久在线视频免费观看 | 荫蒂被男人添的好舒服爽免费视频 | 国产两女互慰高潮视频在线观看 | 国产综合色产在线精品 | 欧美丰满老熟妇xxxxx性 | 性色av无码免费一区二区三区 | 亚洲午夜无码久久 | 国产成人午夜福利在线播放 | 日韩av无码一区二区三区不卡 | 精品国精品国产自在久国产87 | 成人欧美一区二区三区黑人免费 | 婷婷五月综合激情中文字幕 | 国产精品久久久 | 永久黄网站色视频免费直播 | 三上悠亚人妻中文字幕在线 | 午夜免费福利小电影 | 亚洲国产一区二区三区在线观看 | 亚洲爆乳大丰满无码专区 | 俺去俺来也在线www色官网 | 人人妻人人澡人人爽精品欧美 | 久久久久成人精品免费播放动漫 | 天天爽夜夜爽夜夜爽 | 大乳丰满人妻中文字幕日本 | 波多野结衣高清一区二区三区 | 性史性农村dvd毛片 | 国产熟妇另类久久久久 | 国精产品一品二品国精品69xx | 四虎影视成人永久免费观看视频 | 久久久中文久久久无码 | 东京热男人av天堂 | 77777熟女视频在线观看 а天堂中文在线官网 | 无码一区二区三区在线观看 | 性色欲情网站iwww九文堂 | 中文字幕色婷婷在线视频 | 激情内射日本一区二区三区 | 色 综合 欧美 亚洲 国产 | 国产超级va在线观看视频 | 无码人妻精品一区二区三区不卡 | 亚洲日韩av一区二区三区四区 | 少妇愉情理伦片bd | 久久综合给合久久狠狠狠97色 | 亚洲中文字幕无码中字 | 亚洲国产成人av在线观看 | 国产成人综合色在线观看网站 | 国产成人无码av一区二区 | 色欲综合久久中文字幕网 | 国产热a欧美热a在线视频 | 在线观看国产午夜福利片 | 97久久超碰中文字幕 | 亚洲理论电影在线观看 | 又黄又爽又色的视频 | 精品 日韩 国产 欧美 视频 | 日日摸日日碰夜夜爽av | 天天躁日日躁狠狠躁免费麻豆 | 免费看男女做好爽好硬视频 | 妺妺窝人体色www在线小说 | 乱人伦人妻中文字幕无码 | 午夜熟女插插xx免费视频 | 国产熟妇高潮叫床视频播放 | 国产免费久久久久久无码 | 久久久久免费看成人影片 | 欧美丰满熟妇xxxx性ppx人交 | 国产综合在线观看 | 四虎影视成人永久免费观看视频 | 久久国语露脸国产精品电影 | 日日夜夜撸啊撸 | 正在播放老肥熟妇露脸 | 久久伊人色av天堂九九小黄鸭 | 一区二区传媒有限公司 | 亚洲一区二区三区 | 国产97色在线 | 免 | 高潮毛片无遮挡高清免费视频 | 天天av天天av天天透 | 色综合久久久无码中文字幕 | 国产内射爽爽大片视频社区在线 | 西西人体www44rt大胆高清 | 午夜福利一区二区三区在线观看 | 国产精品毛多多水多 | 国産精品久久久久久久 | 国产精品人人爽人人做我的可爱 | 亚洲精品一区三区三区在线观看 | 波多野结衣aⅴ在线 | 一个人看的视频www在线 | 日本乱人伦片中文三区 | 久久久久久国产精品无码下载 | 亚洲欧美日韩综合久久久 | 精品久久久无码人妻字幂 | 色偷偷人人澡人人爽人人模 | 国产精品久久精品三级 | 色综合久久久无码网中文 | 丰满肥臀大屁股熟妇激情视频 | 98国产精品综合一区二区三区 | 国产精品久久国产精品99 | 亚洲自偷自拍另类第1页 | 久久97精品久久久久久久不卡 | 美女张开腿让人桶 | 免费国产成人高清在线观看网站 | 精品无码一区二区三区爱欲 | 国产欧美精品一区二区三区 | 日日干夜夜干 | 精品无人区无码乱码毛片国产 | 国产精品手机免费 | 精品少妇爆乳无码av无码专区 | 天堂一区人妻无码 | 国产绳艺sm调教室论坛 | 日韩精品久久久肉伦网站 | 国产乱人伦av在线无码 | 国产免费观看黄av片 | 成人精品一区二区三区中文字幕 | 日本一本二本三区免费 | a片免费视频在线观看 | 兔费看少妇性l交大片免费 | 性色欲网站人妻丰满中文久久不卡 | 亚洲自偷自拍另类第1页 | 国产成人精品三级麻豆 | 18精品久久久无码午夜福利 | 亚洲日韩一区二区 | 亚洲码国产精品高潮在线 | 国产人妻精品午夜福利免费 | 国产色精品久久人妻 | 国产无套内射久久久国产 | 成人欧美一区二区三区黑人 | 亚洲男人av香蕉爽爽爽爽 | aⅴ在线视频男人的天堂 | 亚洲一区二区三区无码久久 | 亚洲の无码国产の无码步美 | 思思久久99热只有频精品66 | 精品国偷自产在线视频 | 东京热一精品无码av | 人妻aⅴ无码一区二区三区 | 亚洲精品美女久久久久久久 | 少妇人妻大乳在线视频 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲性无码av中文字幕 | 在线播放免费人成毛片乱码 | 国产熟妇另类久久久久 | 中文字幕乱码人妻无码久久 | 特大黑人娇小亚洲女 | 国产suv精品一区二区五 | 亚洲中文字幕va福利 | 国产色精品久久人妻 | 亚洲精品国产第一综合99久久 | 亚洲精品综合五月久久小说 | 亚洲国产精品一区二区美利坚 | 国产69精品久久久久app下载 | 日日鲁鲁鲁夜夜爽爽狠狠 | 日韩精品久久久肉伦网站 | 天堂а√在线地址中文在线 | 亚洲成a人一区二区三区 | 亚洲综合在线一区二区三区 | 一本大道久久东京热无码av | 免费无码午夜福利片69 | 台湾无码一区二区 | 日本饥渴人妻欲求不满 | 精品国产一区二区三区四区在线看 | 四虎4hu永久免费 | 国精品人妻无码一区二区三区蜜柚 | 国产激情无码一区二区 | 亚洲精品久久久久中文第一幕 | 亚洲欧美日韩成人高清在线一区 | 成人精品一区二区三区中文字幕 | 亚洲午夜久久久影院 | 亚洲无人区午夜福利码高清完整版 | 无码播放一区二区三区 | 国产麻豆精品精东影业av网站 | 少女韩国电视剧在线观看完整 | 午夜丰满少妇性开放视频 | 欧美日韩一区二区综合 | 中文字幕无码免费久久99 | 激情五月综合色婷婷一区二区 | 人人爽人人澡人人高潮 | 欧美性生交活xxxxxdddd | 色五月五月丁香亚洲综合网 | 亚洲人成影院在线观看 | 国产特级毛片aaaaaa高潮流水 | 国产无av码在线观看 | 日韩欧美中文字幕在线三区 | 2020久久超碰国产精品最新 | 人妻人人添人妻人人爱 | 国产精品久久久久9999小说 | 乱码av麻豆丝袜熟女系列 | 老司机亚洲精品影院 | 国产女主播喷水视频在线观看 | 精品国产国产综合精品 | 久在线观看福利视频 | 国产精品久久久久久亚洲影视内衣 | 欧美亚洲日韩国产人成在线播放 | 俄罗斯老熟妇色xxxx | 人妻体内射精一区二区三四 | 国产精品亚洲综合色区韩国 | 18无码粉嫩小泬无套在线观看 | 在线成人www免费观看视频 | 亚洲无人区午夜福利码高清完整版 | 久久99精品国产麻豆 | 国内精品人妻无码久久久影院蜜桃 | 国产精品内射视频免费 | 国产免费久久精品国产传媒 | 成熟妇人a片免费看网站 | 荡女精品导航 | 在线观看欧美一区二区三区 | 国产精品人人爽人人做我的可爱 | 色综合久久久久综合一本到桃花网 | 天堂无码人妻精品一区二区三区 | 中国大陆精品视频xxxx | 88国产精品欧美一区二区三区 | 思思久久99热只有频精品66 | 无遮无挡爽爽免费视频 | 中文字幕乱妇无码av在线 | 国产农村乱对白刺激视频 | 国产精品久久久一区二区三区 | 国产 浪潮av性色四虎 | 亚洲综合在线一区二区三区 | 少妇性荡欲午夜性开放视频剧场 | 成人精品视频一区二区三区尤物 | 内射巨臀欧美在线视频 | 300部国产真实乱 | 精品无码一区二区三区的天堂 | 亚洲中文字幕无码中字 | 久热国产vs视频在线观看 | 无码人妻出轨黑人中文字幕 | 成人免费视频视频在线观看 免费 | 激情内射亚州一区二区三区爱妻 | а√资源新版在线天堂 | 精品国产青草久久久久福利 | 精品亚洲韩国一区二区三区 | 欧美一区二区三区视频在线观看 | 伊在人天堂亚洲香蕉精品区 | 婷婷五月综合激情中文字幕 | 国产精品a成v人在线播放 | 国产在线无码精品电影网 | 又大又紧又粉嫩18p少妇 | 色综合久久久无码网中文 | 偷窥日本少妇撒尿chinese | 欧美老妇交乱视频在线观看 | 中国大陆精品视频xxxx | 久久成人a毛片免费观看网站 | 伊人久久大香线蕉亚洲 | 无码国模国产在线观看 | 内射爽无广熟女亚洲 | 国产色精品久久人妻 | 免费看少妇作爱视频 | 97无码免费人妻超级碰碰夜夜 | 中文字幕 亚洲精品 第1页 | 午夜精品一区二区三区在线观看 | 激情亚洲一区国产精品 | 沈阳熟女露脸对白视频 | 国产精品-区区久久久狼 | 无码福利日韩神码福利片 | 精品人妻中文字幕有码在线 | 丰满诱人的人妻3 | 国产成人久久精品流白浆 | 色综合久久88色综合天天 | 国语自产偷拍精品视频偷 | 亚洲第一网站男人都懂 | 国产99久久精品一区二区 | 久久久久久av无码免费看大片 | 高中生自慰www网站 | 国产精品毛片一区二区 | 欧美 日韩 人妻 高清 中文 | 久久久久99精品国产片 | www国产精品内射老师 | 亚洲国产精品一区二区美利坚 | 久久精品国产日本波多野结衣 | 在教室伦流澡到高潮hnp视频 | 动漫av一区二区在线观看 | 中国女人内谢69xxxxxa片 | 一本久道久久综合婷婷五月 | 男女超爽视频免费播放 | 亚洲成av人综合在线观看 | 国产办公室秘书无码精品99 | 欧美怡红院免费全部视频 | 日日摸天天摸爽爽狠狠97 | 99精品久久毛片a片 | 麻豆av传媒蜜桃天美传媒 | 日本乱偷人妻中文字幕 | 麻豆精品国产精华精华液好用吗 | 日本肉体xxxx裸交 | 三上悠亚人妻中文字幕在线 | 欧美大屁股xxxxhd黑色 | 久久99热只有频精品8 | 露脸叫床粗话东北少妇 | 久久99精品国产麻豆 | 亚洲日本在线电影 | 精品无码国产一区二区三区av | 乱码av麻豆丝袜熟女系列 | 中文字幕久久久久人妻 | 人妻体内射精一区二区三四 | 亚洲精品一区国产 | 日本精品久久久久中文字幕 | 亚洲精品欧美二区三区中文字幕 | 未满小14洗澡无码视频网站 | 亚洲人成人无码网www国产 | 欧美亚洲日韩国产人成在线播放 | 日本精品人妻无码77777 天堂一区人妻无码 | 东京无码熟妇人妻av在线网址 | 人妻少妇被猛烈进入中文字幕 | 精品国产国产综合精品 | 婷婷五月综合缴情在线视频 | 日韩人妻无码一区二区三区久久99 | 欧美激情内射喷水高潮 | aⅴ在线视频男人的天堂 | 国产精品视频免费播放 | 亚洲国产精华液网站w | 中文字幕人成乱码熟女app | 色综合久久久无码中文字幕 | 精品亚洲成av人在线观看 | 亚洲乱亚洲乱妇50p | 131美女爱做视频 | 国产内射爽爽大片视频社区在线 | 国产人妻大战黑人第1集 | 中文无码精品a∨在线观看不卡 | 日韩在线不卡免费视频一区 | 精品日本一区二区三区在线观看 | 荫蒂添的好舒服视频囗交 | 久久人人爽人人爽人人片ⅴ | 香蕉久久久久久av成人 | 国内少妇偷人精品视频 | 国产精品无码mv在线观看 | 国产黑色丝袜在线播放 | 久久久成人毛片无码 | 国产在线aaa片一区二区99 | 国内精品久久毛片一区二区 | 精品一区二区不卡无码av | 欧美性猛交内射兽交老熟妇 | 精品国产精品久久一区免费式 | 日本丰满护士爆乳xxxx | 日日橹狠狠爱欧美视频 | 5858s亚洲色大成网站www | 四虎永久在线精品免费网址 | 久久99精品国产麻豆 | 成人av无码一区二区三区 | 久久亚洲中文字幕精品一区 | 国产手机在线αⅴ片无码观看 | 欧美一区二区三区 | 国产精品爱久久久久久久 | www国产精品内射老师 | 人妻少妇精品无码专区动漫 | 欧洲熟妇色 欧美 | 色偷偷人人澡人人爽人人模 | 日本一区二区三区免费播放 | 熟女俱乐部五十路六十路av | 最新国产乱人伦偷精品免费网站 | 成熟女人特级毛片www免费 | 成人亚洲精品久久久久软件 | 国产小呦泬泬99精品 | 日产国产精品亚洲系列 | 学生妹亚洲一区二区 | 欧美性猛交xxxx富婆 | 国产成人无码av在线影院 | 搡女人真爽免费视频大全 | 精品欧美一区二区三区久久久 | 久久精品国产精品国产精品污 | 大肉大捧一进一出好爽视频 | 亚洲国产高清在线观看视频 | 日本一卡2卡3卡四卡精品网站 | 狂野欧美性猛xxxx乱大交 | 国产精品嫩草久久久久 | 亚洲色偷偷男人的天堂 | 欧美日本免费一区二区三区 | 国产成人一区二区三区在线观看 | 成人免费视频视频在线观看 免费 | 日日碰狠狠躁久久躁蜜桃 | 亚洲天堂2017无码 | 欧美亚洲日韩国产人成在线播放 | 国产内射老熟女aaaa | 国产人妻精品一区二区三区不卡 | 在线精品亚洲一区二区 | 亚洲国产欧美国产综合一区 | 东北女人啪啪对白 | 国产精品人人爽人人做我的可爱 | 国产精品a成v人在线播放 | 久久久精品人妻久久影视 | 国产网红无码精品视频 | 亚洲日韩中文字幕在线播放 | 久久久久99精品成人片 | 夜夜影院未满十八勿进 | 中文字幕 亚洲精品 第1页 | 粉嫩少妇内射浓精videos | 娇妻被黑人粗大高潮白浆 | 欧美黑人巨大xxxxx | 亚洲一区av无码专区在线观看 | 久久精品国产亚洲精品 | 亚洲欧美日韩综合久久久 | 国产在线精品一区二区高清不卡 | 少妇人妻av毛片在线看 | 国产偷国产偷精品高清尤物 | 无码吃奶揉捏奶头高潮视频 | 久久www免费人成人片 | 久久综合网欧美色妞网 | 久久国产精品偷任你爽任你 | 亚洲日韩一区二区三区 | 久久久久久久久888 | 乱人伦人妻中文字幕无码久久网 | 久久99精品国产.久久久久 | 内射爽无广熟女亚洲 | 久久天天躁狠狠躁夜夜免费观看 | 99视频精品全部免费免费观看 | 九月婷婷人人澡人人添人人爽 | a片免费视频在线观看 | 国产精品高潮呻吟av久久4虎 | 亚洲综合伊人久久大杳蕉 | 97资源共享在线视频 | 国产av一区二区三区最新精品 | 夜先锋av资源网站 | 领导边摸边吃奶边做爽在线观看 | 亚洲の无码国产の无码步美 | 日本一区二区三区免费高清 | 欧美黑人性暴力猛交喷水 | 西西人体www44rt大胆高清 | 欧美肥老太牲交大战 | 夜精品a片一区二区三区无码白浆 | 国内丰满熟女出轨videos | 一个人看的视频www在线 | 亚洲 欧美 激情 小说 另类 | 色欲久久久天天天综合网精品 | 精品 日韩 国产 欧美 视频 | 波多野结衣乳巨码无在线观看 | 亚洲国产精品久久久久久 | 欧美国产日韩亚洲中文 | 一本久久a久久精品亚洲 | 野外少妇愉情中文字幕 | 亚洲国精产品一二二线 | 大肉大捧一进一出视频出来呀 | 国产一区二区三区日韩精品 | 日韩av无码中文无码电影 | 强奷人妻日本中文字幕 | 婷婷丁香六月激情综合啪 | 国产精品丝袜黑色高跟鞋 | 又紧又大又爽精品一区二区 | 亚洲人成网站免费播放 | 日日摸日日碰夜夜爽av | 伊人久久大香线焦av综合影院 | 永久黄网站色视频免费直播 | 亚洲国产精品成人久久蜜臀 | 丰满人妻翻云覆雨呻吟视频 | 久久精品国产精品国产精品污 | 亚洲日韩一区二区三区 | 亚洲成av人片在线观看无码不卡 | 日本精品久久久久中文字幕 | 中文无码伦av中文字幕 | 欧美激情内射喷水高潮 | 亚洲人成无码网www | 丰满妇女强制高潮18xxxx | 中文字幕色婷婷在线视频 | 欧美老人巨大xxxx做受 | 亚洲国产午夜精品理论片 | 欧美亚洲国产一区二区三区 | 无码精品人妻一区二区三区av | 久久亚洲精品成人无码 | 一本久道高清无码视频 | 亚洲天堂2017无码中文 | 福利一区二区三区视频在线观看 | 三级4级全黄60分钟 | 小鲜肉自慰网站xnxx | 国产成人无码av一区二区 | 无码国产色欲xxxxx视频 | 国产欧美熟妇另类久久久 | 麻豆成人精品国产免费 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲人交乣女bbw | 欧美性猛交内射兽交老熟妇 | 九九久久精品国产免费看小说 | 午夜精品一区二区三区的区别 | 日韩欧美成人免费观看 | 在线观看免费人成视频 | 亚洲啪av永久无码精品放毛片 | 亚洲第一无码av无码专区 | 蜜臀av无码人妻精品 | 动漫av一区二区在线观看 | 日韩精品无码一本二本三本色 | 97夜夜澡人人双人人人喊 | 久久视频在线观看精品 | 国产亚洲精品久久久闺蜜 | 麻豆国产人妻欲求不满谁演的 | 亚洲自偷自拍另类第1页 | 亚洲 欧美 激情 小说 另类 | 波多野结衣一区二区三区av免费 | 亚洲成av人在线观看网址 | 无码吃奶揉捏奶头高潮视频 | 欧美老妇交乱视频在线观看 | 无码人妻出轨黑人中文字幕 | 精品久久综合1区2区3区激情 | 久久99精品国产麻豆蜜芽 | 亚洲国产精品美女久久久久 | 荫蒂添的好舒服视频囗交 | 精品国产乱码久久久久乱码 | 亚洲乱亚洲乱妇50p | 亚洲s色大片在线观看 | 日韩精品无码免费一区二区三区 | 国产sm调教视频在线观看 | 亚洲熟悉妇女xxx妇女av | 日日鲁鲁鲁夜夜爽爽狠狠 | 色妞www精品免费视频 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 成人三级无码视频在线观看 | 国产精品久久国产三级国 | 亚洲成av人在线观看网址 | 麻豆av传媒蜜桃天美传媒 | 人妻少妇精品无码专区二区 | 国产精品内射视频免费 | 亚洲精品www久久久 | 亚洲精品国产精品乱码视色 | 少妇性l交大片 | 人妻体内射精一区二区三四 | 色婷婷欧美在线播放内射 | 国产人妻大战黑人第1集 | 女人被男人爽到呻吟的视频 | 午夜精品久久久久久久久 | 亚洲综合无码一区二区三区 | 自拍偷自拍亚洲精品被多人伦好爽 | 中文字幕人成乱码熟女app | 日本精品高清一区二区 | 国产亚洲精品久久久ai换 | 国产美女极度色诱视频www | 国产sm调教视频在线观看 | 无码国产乱人伦偷精品视频 | 中文字幕人妻丝袜二区 | 国产午夜精品一区二区三区嫩草 | 97se亚洲精品一区 | 又粗又大又硬毛片免费看 | 国产真人无遮挡作爱免费视频 | 成人三级无码视频在线观看 | 国产农村乱对白刺激视频 | 成年美女黄网站色大免费全看 | 欧美激情一区二区三区成人 | 性欧美牲交xxxxx视频 | 中文字幕久久久久人妻 | 欧美日韩久久久精品a片 | 乱人伦人妻中文字幕无码久久网 | 成在人线av无码免费 | 国产成人一区二区三区别 | 国产色视频一区二区三区 | 色婷婷香蕉在线一区二区 | 欧美亚洲日韩国产人成在线播放 | 一本色道久久综合狠狠躁 | 一本久久a久久精品亚洲 | 婷婷色婷婷开心五月四房播播 | 天天躁夜夜躁狠狠是什么心态 | 大地资源中文第3页 | 曰本女人与公拘交酡免费视频 | 日本精品高清一区二区 | 久久综合狠狠综合久久综合88 | 中文无码成人免费视频在线观看 | 日韩av激情在线观看 | 亚洲男人av天堂午夜在 | 丰满人妻一区二区三区免费视频 | 国产97在线 | 亚洲 | 午夜无码人妻av大片色欲 | 日韩少妇白浆无码系列 | 伊人久久大香线蕉亚洲 | 成人无码视频在线观看网站 | 麻豆国产97在线 | 欧洲 | 老太婆性杂交欧美肥老太 | 99精品久久毛片a片 | 天天做天天爱天天爽综合网 | 老头边吃奶边弄进去呻吟 | 国产农村乱对白刺激视频 | 色综合久久88色综合天天 | 暴力强奷在线播放无码 | 亚洲va欧美va天堂v国产综合 | 国产偷国产偷精品高清尤物 | 国产午夜无码视频在线观看 | 精品无人国产偷自产在线 | 久久97精品久久久久久久不卡 | 免费无码的av片在线观看 | 性色欲网站人妻丰满中文久久不卡 | 久久久久久a亚洲欧洲av冫 | 亚洲欧美日韩成人高清在线一区 | 国产精品欧美成人 | 精品偷自拍另类在线观看 | 男女作爱免费网站 | 午夜精品久久久内射近拍高清 | 日韩成人一区二区三区在线观看 | 成人女人看片免费视频放人 | 玩弄少妇高潮ⅹxxxyw | 国产精品高潮呻吟av久久4虎 | 精品无码国产自产拍在线观看蜜 | 免费网站看v片在线18禁无码 | 日本成熟视频免费视频 | 亚洲经典千人经典日产 | 国产免费久久精品国产传媒 | 鲁一鲁av2019在线 | 麻豆精产国品 | 牲欲强的熟妇农村老妇女视频 | 国产精品美女久久久久av爽李琼 | 国内揄拍国内精品人妻 | 扒开双腿疯狂进出爽爽爽视频 | 久久久久免费看成人影片 | 亚洲 欧美 激情 小说 另类 | 一本无码人妻在中文字幕免费 | 欧美黑人巨大xxxxx | 久久无码专区国产精品s | 日本一卡二卡不卡视频查询 | www国产精品内射老师 | 色婷婷久久一区二区三区麻豆 | 日韩人妻系列无码专区 | 久久久久免费看成人影片 | 欧美日韩在线亚洲综合国产人 | 无遮挡国产高潮视频免费观看 | 少妇无码吹潮 | 东京热无码av男人的天堂 | 国产美女极度色诱视频www | 女人和拘做爰正片视频 | 色婷婷综合激情综在线播放 | 波多野结衣aⅴ在线 | 爱做久久久久久 | 亚洲乱亚洲乱妇50p | 久久天天躁狠狠躁夜夜免费观看 | 妺妺窝人体色www婷婷 | 人人澡人摸人人添 | 久久久www成人免费毛片 | 久久久久99精品国产片 | 欧美日韩一区二区免费视频 | 国产成人亚洲综合无码 | 大肉大捧一进一出视频出来呀 | 野外少妇愉情中文字幕 | 无码一区二区三区在线观看 | 中文字幕乱妇无码av在线 | 亚洲色成人中文字幕网站 | 国产人成高清在线视频99最全资源 | 欧美老熟妇乱xxxxx | 欧美性黑人极品hd | 性生交大片免费看l | 成人免费视频在线观看 | 99久久婷婷国产综合精品青草免费 | 久9re热视频这里只有精品 | 国产成人一区二区三区在线观看 | 久久久久亚洲精品男人的天堂 | 丰满肥臀大屁股熟妇激情视频 | 中文字幕+乱码+中文字幕一区 | 亚洲七七久久桃花影院 | 亚洲日韩av一区二区三区四区 | 成熟人妻av无码专区 | 青青草原综合久久大伊人精品 | 77777熟女视频在线观看 а天堂中文在线官网 | 久久国语露脸国产精品电影 | 乱码午夜-极国产极内射 | 国产精品美女久久久 | 最近免费中文字幕中文高清百度 | 天天躁夜夜躁狠狠是什么心态 | 国产偷国产偷精品高清尤物 | 天天躁夜夜躁狠狠是什么心态 | 久精品国产欧美亚洲色aⅴ大片 | 久久久久亚洲精品男人的天堂 | 中文字幕久久久久人妻 | 亚洲国产av精品一区二区蜜芽 | 久久精品中文闷骚内射 | 日韩人妻无码中文字幕视频 | 丰满肥臀大屁股熟妇激情视频 | 国产国产精品人在线视 | 三上悠亚人妻中文字幕在线 | 久久亚洲日韩精品一区二区三区 | 久久亚洲a片com人成 | 999久久久国产精品消防器材 | 熟妇人妻无乱码中文字幕 | 色诱久久久久综合网ywww | 好男人社区资源 | 国产精品亚洲综合色区韩国 | 亚洲精品久久久久中文第一幕 | 丰满少妇高潮惨叫视频 | 亚洲国产欧美在线成人 | 无码人妻丰满熟妇区五十路百度 | 在线看片无码永久免费视频 | 国产精品久久久午夜夜伦鲁鲁 | 欧美人与禽猛交狂配 | 风流少妇按摩来高潮 | 中文字幕无码av波多野吉衣 | 超碰97人人射妻 | 中文字幕中文有码在线 | 东京无码熟妇人妻av在线网址 | 爽爽影院免费观看 | 无码精品国产va在线观看dvd | 99国产精品白浆在线观看免费 | 国产精品国产三级国产专播 | 精品成在人线av无码免费看 | 国产午夜福利100集发布 | 中文字幕乱码人妻无码久久 | 亚洲aⅴ无码成人网站国产app | 久久久精品欧美一区二区免费 | 毛片内射-百度 | 亚洲国产精品无码一区二区三区 | 日韩人妻无码中文字幕视频 | 久久精品女人天堂av免费观看 | 大乳丰满人妻中文字幕日本 | 精品成人av一区二区三区 | 色欲av亚洲一区无码少妇 | 中文字幕无线码免费人妻 | 中文字幕无线码免费人妻 | 国产小呦泬泬99精品 | 亚洲欧美国产精品专区久久 | 国产精品嫩草久久久久 | 色欲久久久天天天综合网精品 | 国产精品人妻一区二区三区四 | 日本大乳高潮视频在线观看 | 久久精品女人天堂av免费观看 | 国产成人无码av片在线观看不卡 | 久久国内精品自在自线 | 婷婷五月综合激情中文字幕 | 1000部啪啪未满十八勿入下载 | 久久人人爽人人爽人人片ⅴ | 久久这里只有精品视频9 | 成人影院yy111111在线观看 | 亲嘴扒胸摸屁股激烈网站 | 老熟妇仑乱视频一区二区 | 精品无码国产一区二区三区av | 亚洲第一无码av无码专区 | 久久精品99久久香蕉国产色戒 | 亚洲精品国产第一综合99久久 | 亚洲va欧美va天堂v国产综合 | 日韩欧美群交p片內射中文 | 国内精品人妻无码久久久影院蜜桃 | 国产亚洲精品精品国产亚洲综合 | 亚洲国产精品久久人人爱 | 无码播放一区二区三区 | 免费国产黄网站在线观看 | 乌克兰少妇性做爰 | 亚洲中文无码av永久不收费 | 亚洲一区二区三区在线观看网站 | 四虎影视成人永久免费观看视频 | 国产香蕉尹人综合在线观看 | 无码一区二区三区在线观看 | 国产偷国产偷精品高清尤物 | 国产人妻人伦精品 | 夜精品a片一区二区三区无码白浆 | 天堂无码人妻精品一区二区三区 | 玩弄少妇高潮ⅹxxxyw | 老司机亚洲精品影院 | 成人无码精品1区2区3区免费看 | 麻豆人妻少妇精品无码专区 | 狠狠色色综合网站 | 蜜桃无码一区二区三区 | 精品夜夜澡人妻无码av蜜桃 | 久久久婷婷五月亚洲97号色 | 久久精品无码一区二区三区 | 蜜桃视频韩日免费播放 | 成人无码精品1区2区3区免费看 | 激情亚洲一区国产精品 | 精品久久久久久人妻无码中文字幕 | 高潮毛片无遮挡高清免费 | 欧美自拍另类欧美综合图片区 | 国产精品久久久一区二区三区 | 久久午夜夜伦鲁鲁片无码免费 | 水蜜桃亚洲一二三四在线 | 亚洲国产精品一区二区第一页 | 麻豆人妻少妇精品无码专区 | 午夜精品久久久内射近拍高清 | 妺妺窝人体色www婷婷 | 俺去俺来也www色官网 | 无码中文字幕色专区 | 色一情一乱一伦一区二区三欧美 | 51国偷自产一区二区三区 | 丰满少妇高潮惨叫视频 | 亚洲成av人综合在线观看 | 国产无套粉嫩白浆在线 | 精品人妻人人做人人爽夜夜爽 | 国产精品二区一区二区aⅴ污介绍 | 久久无码中文字幕免费影院蜜桃 | 扒开双腿疯狂进出爽爽爽视频 | 麻花豆传媒剧国产免费mv在线 | 国产成人无码区免费内射一片色欲 | 一个人看的www免费视频在线观看 | 国产成人精品久久亚洲高清不卡 | 国产精品18久久久久久麻辣 | 国产真人无遮挡作爱免费视频 | 小泽玛莉亚一区二区视频在线 | 精品少妇爆乳无码av无码专区 | 牲交欧美兽交欧美 | 丰满人妻精品国产99aⅴ | 国产在线精品一区二区三区直播 | 欧美 丝袜 自拍 制服 另类 | 中文字幕av无码一区二区三区电影 | 99国产欧美久久久精品 | 丝袜足控一区二区三区 | 妺妺窝人体色www婷婷 | 国产尤物精品视频 | 中文字幕 人妻熟女 | 亚洲欧美精品aaaaaa片 | 久久亚洲日韩精品一区二区三区 | 亚洲va欧美va天堂v国产综合 | 人人爽人人爽人人片av亚洲 | 野外少妇愉情中文字幕 | 国语自产偷拍精品视频偷 | 东北女人啪啪对白 | 国产熟女一区二区三区四区五区 | yw尤物av无码国产在线观看 | 牲欲强的熟妇农村老妇女视频 | 国产亚洲美女精品久久久2020 | 亚洲欧美中文字幕5发布 | 秋霞成人午夜鲁丝一区二区三区 | 最近免费中文字幕中文高清百度 | 国产亚洲精品久久久闺蜜 | 成人无码视频在线观看网站 | 精品久久久无码人妻字幂 | 桃花色综合影院 | 亚洲熟妇色xxxxx欧美老妇 | 98国产精品综合一区二区三区 | 在教室伦流澡到高潮hnp视频 | 精品国产av色一区二区深夜久久 | 香港三级日本三级妇三级 | 久久久亚洲欧洲日产国码αv | 一本无码人妻在中文字幕免费 | 亚洲熟熟妇xxxx | 国产极品美女高潮无套在线观看 | 日本一区二区三区免费播放 | 图片区 小说区 区 亚洲五月 | 俺去俺来也在线www色官网 | 欧美高清在线精品一区 | 无码乱肉视频免费大全合集 | 老太婆性杂交欧美肥老太 | 午夜熟女插插xx免费视频 | 国内精品一区二区三区不卡 | 亚洲国产高清在线观看视频 | a片免费视频在线观看 | 天天综合网天天综合色 | 天天摸天天碰天天添 | 377p欧洲日本亚洲大胆 | 东京无码熟妇人妻av在线网址 | 99麻豆久久久国产精品免费 | 水蜜桃色314在线观看 | 午夜熟女插插xx免费视频 | 欧美喷潮久久久xxxxx | 六月丁香婷婷色狠狠久久 | aⅴ亚洲 日韩 色 图网站 播放 | 99久久久无码国产aaa精品 | 日本大香伊一区二区三区 | 日韩少妇内射免费播放 | 国产精品久久久 | 国产av剧情md精品麻豆 | 国产无遮挡又黄又爽又色 | 双乳奶水饱满少妇呻吟 | 丰满人妻一区二区三区免费视频 | 欧美丰满熟妇xxxx性ppx人交 | 无码国产色欲xxxxx视频 | 亚洲综合精品香蕉久久网 | 国产精品美女久久久久av爽李琼 | 日本又色又爽又黄的a片18禁 | 欧美熟妇另类久久久久久不卡 | 2019午夜福利不卡片在线 | 中文字幕人妻无码一夲道 | 无套内谢的新婚少妇国语播放 | 国产高清不卡无码视频 | 成年女人永久免费看片 | 亚欧洲精品在线视频免费观看 | 久久 国产 尿 小便 嘘嘘 | 无码av免费一区二区三区试看 | 99久久精品国产一区二区蜜芽 | 亲嘴扒胸摸屁股激烈网站 | 最新版天堂资源中文官网 | 久久午夜夜伦鲁鲁片无码免费 | 亚洲精品中文字幕乱码 | 人妻少妇精品无码专区动漫 | 影音先锋中文字幕无码 | 色婷婷欧美在线播放内射 | 日本www一道久久久免费榴莲 | 国产亚av手机在线观看 | 亚洲人成影院在线无码按摩店 | 荫蒂被男人添的好舒服爽免费视频 | 国产成人无码av片在线观看不卡 | 精品亚洲韩国一区二区三区 | 夜夜高潮次次欢爽av女 | 狠狠综合久久久久综合网 | 欧美人与动性行为视频 | 无套内谢老熟女 | 精品久久久久香蕉网 | 男女爱爱好爽视频免费看 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲娇小与黑人巨大交 | 国产欧美熟妇另类久久久 | 狠狠cao日日穞夜夜穞av | 亚洲欧美日韩成人高清在线一区 | 国产精品久久久av久久久 | av在线亚洲欧洲日产一区二区 | 亚洲а∨天堂久久精品2021 | 亚洲综合无码一区二区三区 | 俺去俺来也在线www色官网 | 免费网站看v片在线18禁无码 | 午夜嘿嘿嘿影院 | 男人扒开女人内裤强吻桶进去 | 国产一区二区三区四区五区加勒比 | 亚洲色大成网站www国产 | 亚洲日韩一区二区 | 超碰97人人射妻 | 丰满少妇高潮惨叫视频 | 精品水蜜桃久久久久久久 | 黑人巨大精品欧美黑寡妇 | 欧美性黑人极品hd | 亚洲欧洲无卡二区视頻 | 亚洲 a v无 码免 费 成 人 a v | 一个人免费观看的www视频 | 国产午夜精品一区二区三区嫩草 | 人人妻人人澡人人爽人人精品 | 四十如虎的丰满熟妇啪啪 | 欧美亚洲国产一区二区三区 | 欧美老人巨大xxxx做受 | 在线成人www免费观看视频 | 久久久av男人的天堂 | 思思久久99热只有频精品66 | 国产精品高潮呻吟av久久4虎 | 国产午夜福利100集发布 | 少妇邻居内射在线 | 中文字幕精品av一区二区五区 | 亚洲 日韩 欧美 成人 在线观看 | 精品国产一区二区三区四区在线看 | 国产精品人人爽人人做我的可爱 | 帮老师解开蕾丝奶罩吸乳网站 | 亚洲精品一区二区三区四区五区 | 国产97人人超碰caoprom | 亚洲精品午夜无码电影网 | 国产超碰人人爽人人做人人添 | 一本加勒比波多野结衣 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲人交乣女bbw | 激情人妻另类人妻伦 | 亚洲精品午夜国产va久久成人 | 熟女少妇在线视频播放 | 精品无码一区二区三区爱欲 | 色综合久久久无码中文字幕 | 三级4级全黄60分钟 | 中文字幕无码人妻少妇免费 | 国产成人一区二区三区在线观看 | 精品国产乱码久久久久乱码 | 国产三级久久久精品麻豆三级 | 午夜精品一区二区三区在线观看 | 久久精品中文闷骚内射 | √天堂资源地址中文在线 | 天天拍夜夜添久久精品大 | 成熟人妻av无码专区 | 色婷婷香蕉在线一区二区 | 内射后入在线观看一区 | 成人无码精品1区2区3区免费看 | 麻豆果冻传媒2021精品传媒一区下载 | 国产午夜亚洲精品不卡 | 亚洲精品国偷拍自产在线观看蜜桃 | 午夜精品一区二区三区在线观看 | 久久综合给合久久狠狠狠97色 | 精品久久久无码人妻字幂 | 日本又色又爽又黄的a片18禁 | 俺去俺来也www色官网 | 亚洲色大成网站www | 国产精品亚洲五月天高清 | 日本大乳高潮视频在线观看 | а天堂中文在线官网 | 伊人久久大香线焦av综合影院 | 亚洲爆乳精品无码一区二区三区 | 国产精品va在线播放 | 亚洲成av人影院在线观看 | 中国女人内谢69xxxx | 无码一区二区三区在线观看 | 国产69精品久久久久app下载 | 无码中文字幕色专区 | 亚洲日韩中文字幕在线播放 | 国产免费无码一区二区视频 | 人人妻人人澡人人爽欧美精品 | 麻豆国产丝袜白领秘书在线观看 | 人妻aⅴ无码一区二区三区 | 伊人久久大香线蕉亚洲 | 97夜夜澡人人爽人人喊中国片 | 99久久精品午夜一区二区 | 亚洲国产高清在线观看视频 | 暴力强奷在线播放无码 | 中文字幕人妻无码一区二区三区 | 日韩人妻无码一区二区三区久久99 | 成人欧美一区二区三区黑人免费 | 999久久久国产精品消防器材 | 乱码午夜-极国产极内射 | 少妇被黑人到高潮喷出白浆 | 性史性农村dvd毛片 | 亚洲 激情 小说 另类 欧美 | 丰满人妻被黑人猛烈进入 | 中文字幕无码免费久久9一区9 | 高潮喷水的毛片 | 骚片av蜜桃精品一区 | 中文字幕日产无线码一区 | 亚洲精品成人福利网站 | 18黄暴禁片在线观看 | 四虎影视成人永久免费观看视频 | 国产在线无码精品电影网 | 两性色午夜免费视频 | 一个人免费观看的www视频 | 精品一二三区久久aaa片 | 一本久久a久久精品vr综合 | 久久久久亚洲精品中文字幕 | 少妇被黑人到高潮喷出白浆 | 亚洲春色在线视频 | 内射爽无广熟女亚洲 | 成人无码视频在线观看网站 | 97se亚洲精品一区 | 久久久成人毛片无码 | 高中生自慰www网站 | 综合网日日天干夜夜久久 | 午夜理论片yy44880影院 | 5858s亚洲色大成网站www | 亚洲日韩一区二区三区 | 999久久久国产精品消防器材 | 中文无码精品a∨在线观看不卡 | 在线播放无码字幕亚洲 | 亚洲色偷偷偷综合网 | 老熟女乱子伦 | 十八禁真人啪啪免费网站 | 少妇无套内谢久久久久 | 久久久精品成人免费观看 | 亚洲天堂2017无码 | 免费无码午夜福利片69 | 国产午夜福利亚洲第一 | 黑人粗大猛烈进出高潮视频 | 久久亚洲中文字幕精品一区 | 在线成人www免费观看视频 | 国产亚洲美女精品久久久2020 | 国语自产偷拍精品视频偷 | 欧美日韩色另类综合 | 亚洲人成影院在线观看 | 国精品人妻无码一区二区三区蜜柚 | 国产精品无码mv在线观看 | 中文精品久久久久人妻不卡 | 福利一区二区三区视频在线观看 | 久久99精品久久久久婷婷 | 人妻少妇被猛烈进入中文字幕 | 性欧美videos高清精品 | 精品国产精品久久一区免费式 | 久久精品国产一区二区三区肥胖 | 国产精品亚洲五月天高清 | 精品 日韩 国产 欧美 视频 | 狠狠综合久久久久综合网 | 特黄特色大片免费播放器图片 | 中文字幕无码av激情不卡 | 特级做a爰片毛片免费69 | 国产精品欧美成人 | 久久精品国产99精品亚洲 | 国产亚洲精品久久久闺蜜 | 久久精品无码一区二区三区 | 一本精品99久久精品77 | 18黄暴禁片在线观看 | 精品久久久无码人妻字幂 | 亚洲日韩乱码中文无码蜜桃臀网站 | 无码国产乱人伦偷精品视频 | 天堂在线观看www | 好爽又高潮了毛片免费下载 | 中文字幕无码免费久久99 | 色一情一乱一伦一区二区三欧美 | 久在线观看福利视频 | 人妻少妇精品无码专区二区 | 免费无码av一区二区 | 国产人妻精品午夜福利免费 | 国产午夜福利100集发布 | 老头边吃奶边弄进去呻吟 | 狠狠色丁香久久婷婷综合五月 | 天天做天天爱天天爽综合网 | 精品国产国产综合精品 | 大地资源中文第3页 | 国产精品久久久久久久9999 | 欧美肥老太牲交大战 | 国产成人无码一二三区视频 | 成人精品一区二区三区中文字幕 | 国产激情无码一区二区app | 综合网日日天干夜夜久久 | 成人片黄网站色大片免费观看 | 欧美日韩久久久精品a片 | 国产尤物精品视频 | 国产一区二区三区精品视频 | 内射后入在线观看一区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亚洲精品综合一区二区三区在线 | 国产口爆吞精在线视频 | 东京无码熟妇人妻av在线网址 | 免费无码肉片在线观看 | 欧美日韩久久久精品a片 | 亚洲中文字幕在线无码一区二区 | 欧美黑人巨大xxxxx | 亚洲色大成网站www | 97久久国产亚洲精品超碰热 | 在线播放亚洲第一字幕 | 88国产精品欧美一区二区三区 | 亚洲中文字幕无码中字 | 18禁止看的免费污网站 | 日日摸天天摸爽爽狠狠97 | 国产电影无码午夜在线播放 | 男人的天堂av网站 | 国内精品一区二区三区不卡 | 午夜肉伦伦影院 | 亚洲人成网站色7799 | 国产高清av在线播放 | 欧美老妇交乱视频在线观看 | 国产乱人伦偷精品视频 | 女高中生第一次破苞av | 色 综合 欧美 亚洲 国产 | 漂亮人妻洗澡被公强 日日躁 | 亚洲va中文字幕无码久久不卡 | 日本大乳高潮视频在线观看 | 国产精品99久久精品爆乳 | 国产一区二区三区四区五区加勒比 | 国产精品久久福利网站 | 在线播放无码字幕亚洲 | 亚洲一区二区三区香蕉 | 内射爽无广熟女亚洲 | 亚洲成色在线综合网站 | 亚洲成av人片天堂网无码】 | 日韩欧美群交p片內射中文 | 国产午夜福利100集发布 | 鲁鲁鲁爽爽爽在线视频观看 | 国产特级毛片aaaaaa高潮流水 | 丰满人妻被黑人猛烈进入 | 精品人妻av区 | 亚洲中文字幕va福利 | 人妻体内射精一区二区三四 | 日日摸夜夜摸狠狠摸婷婷 | 成熟人妻av无码专区 | 国精产品一区二区三区 | 伊人色综合久久天天小片 | 欧洲欧美人成视频在线 | 亚洲精品一区二区三区在线 | 欧美丰满熟妇xxxx | 最新国产乱人伦偷精品免费网站 | 成人aaa片一区国产精品 | 久久99精品久久久久久 |