亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > Swift > 正文

在一個(gè)項(xiàng)目中同時(shí)使用Swift和Objective-C代碼混合編程的方法

2020-03-09 17:52:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了在一個(gè)項(xiàng)目中同時(shí)使用Swift和Objective-C代碼的方法,在一個(gè)工程中同時(shí)使用Swift和Objective-C混合語(yǔ)言編程的方法,需要的朋友可以參考下
 

Swift 與 Objective-C 的兼容能力使你可以在同一個(gè)工程中同時(shí)使用兩種語(yǔ)言。你可以用這種叫做 mix and match 的特性來(lái)開發(fā)基于混合語(yǔ)言的應(yīng)用,可以用 Swfit 的最新特性實(shí)現(xiàn)應(yīng)用的一部分功能,并無(wú)縫地并入已有的 Objective-C 的代碼中。

Mix and Match 概述

Objective-C 和 Swift 文件可以在一個(gè)工程中并存,不管這個(gè)工程原本是基于 Objective-C 還是 Swift。你可以直接往現(xiàn)有工程中簡(jiǎn)單地添加另一種語(yǔ)言的源文件。這種自然的工作流使得創(chuàng)建混合語(yǔ)言的應(yīng)用或框架 target,與用單獨(dú)一種語(yǔ)言時(shí)一樣簡(jiǎn)單。

混合語(yǔ)言的工作流程只有一點(diǎn)點(diǎn)區(qū)別,這取決于你是在寫應(yīng)用還是寫框架。下面描述了普通的用兩種語(yǔ)言在一個(gè) target 中導(dǎo)入模型的情況,后續(xù)章節(jié)會(huì)有更多細(xì)節(jié)。

在一個(gè)項(xiàng)目中同時(shí)使用Swift和Objective-C代碼混合編程的方法

在同個(gè)應(yīng)用的 target 中導(dǎo)入

如果你在寫混合語(yǔ)言的應(yīng)用,可能需要用 Swift 代碼訪問(wèn) Objective-C 代碼,或者反之。下面的流程描述了在非框架 target 中的應(yīng)用。

將 Objective-C 導(dǎo)入 Swift

在一個(gè)應(yīng)用的 target 中導(dǎo)入一些 Objective-C 文件供 Swift 代碼使用時(shí),你需要依賴與 Objective-C 的橋接頭文件(bridging header)來(lái)暴露給 Swift。當(dāng)你添加 Swift 文件到現(xiàn)有的 Objective-C 應(yīng)用(或反之)時(shí),Xcode 會(huì)自動(dòng)創(chuàng)建這些頭文件。

如果你同意,Xcode 會(huì)在源文件創(chuàng)建的同時(shí)生成頭文件,并用 product 的模塊名加上 -Bridging-Header.h 命名。關(guān)于 product 的模塊名,詳見 Naming Your Product Module。

在一個(gè)項(xiàng)目中同時(shí)使用Swift和Objective-C代碼混合編程的方法

你應(yīng)該編輯這個(gè)頭文件來(lái)對(duì) Swift 暴露出 Objective-C 代碼。

在同一 target 中將 Objective-C 代碼導(dǎo)入到 Swift 中

1) 在 Objective-C 橋接頭文件中,import 任何你想暴露給 Swift 的頭文件,例如:

復(fù)制代碼代碼如下:

// OBJECTIVE-C

 

#import "XYZCustomCell.h"
#import "XYZCustomView.h"
#import "XYZCustomViewController.h"

 

2) 確保在 Build Settings 中 Objective-C 橋接頭文件的 build setting 是基于 Swfit 編譯器,即 Code Generation 含有頭文件的路徑。這個(gè)路徑必須是頭文件自身的路徑,而不是它所在的目錄。

這個(gè)路徑應(yīng)該是你工程的相對(duì)路徑,類似 Info.plist 在 Build Settings 中指定的路徑。在大多數(shù)情況下,你不需要修改這個(gè)設(shè)置。

在這個(gè)橋接頭文件中列出的所有 public 的 Objective-C 頭文件都會(huì)對(duì) Swift 可見。之后當(dāng)前 target 的所有 Swift 文件都可以使用這些頭文件中的方法,不需要任何 import 語(yǔ)句。用 Swift 語(yǔ)法使用這些 Objective-C 代碼,就像使用系統(tǒng)自帶的 Swift 類一樣。 

復(fù)制代碼代碼如下:

// SWIFT

 

let myCell = XYZCustomCell()
myCell.subtitle = "A custom cell"

 

將 Swift 導(dǎo)入 Objective-C

向 Objective-C 中導(dǎo)入Swift 代碼時(shí),你依賴 Xcode 生成的頭文件來(lái)向 Objective-C 暴露 Swift 代碼。這是自動(dòng)生成 Objective-C 頭文件,它包含了你的 target 中所有 Swift 代碼中定義的接口??梢园堰@個(gè) Objective-C 頭文件看作 Swift 代碼的 umbrella header。它以 product 模塊名加 -Swift.h 來(lái)命名。關(guān)于 product 的模塊名,詳見Naming Your Product Module。

你不需要做任何事情來(lái)生成這個(gè)頭文件,只需要將它導(dǎo)入到你的 Objective-C 代碼來(lái)使用它。注意這個(gè)頭文件中的 Swift 接口包含了它所使用到的所有 Objective-C 類型。如果你在 Swift 代碼中使用你自己的 Objective-C 類型,確保先將對(duì)應(yīng)的 Objective-C 頭文件導(dǎo)入到你的 Swift 代碼中,然后才將 Swift 自動(dòng)生成的頭文件導(dǎo)入到 Objective-C .m 源文件中來(lái)訪問(wèn) Swift 代碼。

在同一 target 中將 Swift 代碼導(dǎo)入到 Objective-C 中

在相同 target 的 Objective-C .m 源文件中,用下面的語(yǔ)法來(lái)導(dǎo)入Swift 代碼: 

復(fù)制代碼代碼如下:

// OBJECTIVE-C
#import "ProductModuleName-Swift.h" 

 

target 中任何 Swift 文件將會(huì)對(duì) Objective-C .m 源文件可見,包括這個(gè) import 語(yǔ)句。關(guān)于在 Objective-C 代碼中使用 Swift 代碼,詳見 Using Swift from Objective-C。

 

  導(dǎo)入到 Swift 導(dǎo)入到 Swift
Swift 代碼 不需要import語(yǔ)句 #import
Objective-C 代碼 不需要import語(yǔ)句;需要 Objective-C `umbrella頭文件 #import "Header.h"

 

在同個(gè) Framework 的 target 中導(dǎo)入

如果你在寫一個(gè)混合語(yǔ)言的框架,可能會(huì)從 Swift 代碼訪問(wèn) Objective-C 代碼,或者反之。

將 Objective-C 導(dǎo)入 Swift

要將一些 Objective-C 文件導(dǎo)入到同個(gè)框架 target 的 Swift 代碼中去,你需要將這些文件導(dǎo)入到 Objective-C 的 umbrella header來(lái)供框架使用。

在同一 framework 中將 Objective-C 代碼導(dǎo)入到 Swift 中

確保將框架 target 的 Build Settings > Packaging > Defines Module 設(shè)置為 Yes。然后在你的 umbrella header 頭文件中導(dǎo)入你想暴露給 Swift 訪問(wèn)的 Objective-C 頭文件,例如:

 

復(fù)制代碼代碼如下:

// OBJECTIVE-C
#import <XYZ/XYZCustomCell.h>
#import <XYZ/XYZCustomView.h>
#import <XYZ/XYZCustomViewController.h> 

 

Swift 將會(huì)看到所有你在 umbrella header 中公開暴露出來(lái)的頭文件,框架 target 中的所有 Swift 文件都可以訪問(wèn)你 Objective-C 文件的內(nèi)容,不需要任何 import 語(yǔ)句。

 

復(fù)制代碼代碼如下:

// SWIFT
let myCell = XYZCustomCell()
myCell.subtitle = "A custom cell" 

 

將 Swift 導(dǎo)入 Objective-C

要將一些 Swift 文件導(dǎo)入到同個(gè)框架的 target 的 Objective-C 代碼去,你不需要導(dǎo)入任何東西到 umbrella header 文件,而是將 Xcode 為你的 Swift 代碼自動(dòng)生成的頭文件導(dǎo)入到你的 Obj .m 源文件去,以便在 Objective-C 代碼中訪問(wèn) Swift 代碼。

在同一 framework 中將 Swift 代碼導(dǎo)入到 Objective-C 中

確保將框架 target 的 Build Settings > Packaging 中的 Defines Module 設(shè)置為 Yes。用下面的語(yǔ)法將 Swift 代碼導(dǎo)入到同個(gè)框架 target 下的 Objective-C .m 源文件去。

 

復(fù)制代碼代碼如下:

// OBJECTIVE-C
#import <ProductName/ProductModuleName-Swift.h> 

 

這個(gè) import 語(yǔ)句所包含的 Swift 文件都可以被同個(gè)框架 target 下的 Objective-C .m 源文件訪問(wèn)。關(guān)于在 Objective-C 代碼中使用 Swift 代碼,詳見 Using Swift from Objective-C。

 

  導(dǎo)入到 Swift 導(dǎo)入到 Swift
Swift 代碼 不需要import語(yǔ)句 #import
Objective-C 代碼 不需要import語(yǔ)句;需要 Objective-C `umbrella頭文件 #import "Header.h"

 

在 Objective-C 中使用 Swift

當(dāng)你將 Swift 代碼導(dǎo)入 Objective-C 文件之后,用普通的 Objective-C 語(yǔ)法使用 Swift 類。 

復(fù)制代碼代碼如下:

// OBJECTIVE-C

 

MySwiftClass *swiftObject = [[MySwiftClass alloc] init];
[swiftObject swiftMethod];

 

Swift 的類或協(xié)議必須用 @Objective-C attribute 來(lái)標(biāo)記,以便在 Objective-C 中可訪問(wèn)。這個(gè) attribute 告訴編譯器這個(gè) Swift 代碼可以從 Objective-C 代碼中訪問(wèn)。如果你的 Swift 類是 Objective-C 類的子類,編譯器會(huì)自動(dòng)為你添加 @Objective-C attribute。詳見 Swift Type Compatibility。

你可以訪問(wèn) Swift 類或協(xié)議中用 @Objective-C attribute 標(biāo)記過(guò)東西,只要它和 Objective-C 兼容。不包括一下這些 Swift 獨(dú)有的特性:

•Generics - 范型
•Tuples - 元組
•Enumerations defined in Swift - Swift 中定義的枚舉
•Structures defined in Swift - Swift 中定義的結(jié)構(gòu)體
•Top-level functions defined in Swift - Swift Swift 中定義的頂層函數(shù)
•Global variables defined in Swift - Swift 中定義的全局變量
•Typealiases defined in Swift - Swift 中定義的類型別名
•Swift-style variadics - Swift風(fēng)格可變參數(shù)
•Nested types - 嵌套類型
•Curried functions - 柯里化后的函數(shù)

例如帶有范型類型作為參數(shù),或者返回元組的方法不能在 Objective-C 中使用。

為了避免循環(huán)引用,不要將 Swift 代碼導(dǎo)入到 Objective-C 頭文件中。但是你可以在 Objective-C 頭文件中前向聲明(forward declare)一個(gè) Swift 類來(lái)使用它,然而,注意不能在 Objective-C 中繼承一個(gè) Swift 類。

在 Objective-C 頭文件中引用 Swift 類

這樣前向聲明 Swift 類: 

復(fù)制代碼代碼如下:

// OBJECTIVE-C
// MyObjective-CClass.h

 

@class MySwiftClass;

@interface MyObjective-CClass : NSObject
- (MySwiftClass *)returnSwiftObject;
/* ... */
@end

 

Product 模塊命名

Xcode 為 Swift 代碼生成的頭文件的名稱,以及 Xcode 創(chuàng)建的 Objective-C 橋接頭文件名稱,都是從你的 product 模塊名生成的。默認(rèn)你的 product 模塊名和 product 名一樣。然而,如果你的 product 名有特殊字符(nonalphanumeric,非數(shù)字、字母的字符),例如點(diǎn)號(hào),那么它們會(huì)被下劃線(_)替換之后作為你的 product 模塊名。如果 product 名以數(shù)字開頭,那么第一個(gè)數(shù)字會(huì)用下劃線替換掉。

你可以給 product 模塊名提供一個(gè)自定義的名稱,Xcode 會(huì)用這個(gè)名稱來(lái)命名橋接的和自動(dòng)生成的頭文件。你只需要在修改在build setting 中的 Product Module Name 即可。

問(wèn)題解決提示

•把 Swift 和 Objective-C 文件看作相同的代碼集合,并注意命名沖突;
•如果你用框架,確保 Build Setting > Pakaging > Defines Module 設(shè)置為 Yes;
•如果你使用 Objective-C 橋接頭文件,確保在 Build Settings 中 Objective-C 橋接頭文件的 build setting 是基于 Swfit 編譯器,即 Code Generation 含有頭文件的路徑。這個(gè)路徑必須是頭文件自身的路徑,而不是它所在的目錄;
•Xcode 使用你的 product 模塊名,而不是 target 名來(lái)命名 Objective-C 橋接頭文件和為 Swift 自動(dòng)生成的頭文件。詳見 Naming Your Product Module;
•為了在 Objective-C 中可用, Swift 類必須是 Objective-C 類的子類,或者用 @Objective-C 標(biāo)記;
•當(dāng)你將 Swift 導(dǎo)入到 Objective-C 中時(shí),記住 Objective-C 不會(huì)將 Swift 獨(dú)有的特性翻譯成 Objective-C 對(duì)應(yīng)的特性。詳見列表Using Swift from Objective-C;
•如果你在 Swift 代碼中使用你自己的 Objective-C 類型,確保先將對(duì)應(yīng)的 Objective-C 頭文件導(dǎo)入到你的 Swift 代碼中,然后才將 Swift 自動(dòng)生成的頭文件 import 到 Objective-C .m 源文件中來(lái)訪問(wèn) Swift 代碼。



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到swift教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲国产精品成人综合色在线婷婷| 奇米视频888战线精品播放| 国产精品一区二区久久不卡| 国产毛片精品国产一区二区三区| 久久精品99无色码中文字幕| 蜜桃91麻豆精品一二三区| 制服丝袜中文字幕在线观看| 男人天堂av网| 日韩精品视频久久| 日韩1区2区| 波多野结衣之无限发射| 亚洲国产日韩欧美在线99| 精品人妻人人做人人爽夜夜爽| 亚洲欧美精品久久| 99这里有精品视频| 亚洲人成亚洲人成在线观看图片| 亚洲高清在线| 一级特黄aa大片| 欧美69精品久久久久久不卡| 风流老熟女一区二区三区| 91激情在线观看| 精品一区免费观看| 精品精品久久| 久久精品国产一区二区三| 国产精品传媒入口麻豆| 91精品国产综合久久香蕉最新版| 国产黄视频在线观看| www成人在线| jlzzjlzz国产精品久久| 成人性生交大片免费看96| 久久夜色精品国产噜噜av| 国产成人无遮挡在线视频| 国产无套粉嫩白浆内谢| 一区二区免费在线播放| 美女高潮视频在线看| 一个人看的www在线免费视频| 日韩av一区在线| 青花影视在线观看免费高清| 99久久99久久精品免费观看| 亚洲综合影院| 中文字幕高清不卡| 深夜在线视频| 色屁屁影院www国产高清麻豆| 51国产成人精品午夜福中文下载| 国产高潮呻吟久久| 久久久精品国产sm调教| 国产成人一区二区三区别| 亚洲欧美自拍另类日韩| 超级碰碰久久| 国产精品videossex| 伊人情人综合网| 欧美婷婷六月丁香综合色| 国产视频网址在线| 欧美亚洲国产一卡| 99精品热视频| 色婷婷国产精品免| 少妇**av毛片在线看| 精选一区二区三区四区五区| 亚洲色图影院| 日本黄区免费视频观看| 国产一二三四区在线观看| 一区二区黄色| 国产精品视频二| 亚洲xxxx2d动漫1| 免费操人视频| 免费看成人哺乳视频网站| 黄色xxxx| 午夜婷婷国产麻豆精品| 激情五月***国产精品| 日韩大片免费在线观看| 樱桃国产成人精品视频| 亚洲天堂av电影| 99国产超薄丝袜足j在线观看| 成人国产精品一级毛片视频| 91肉色超薄丝袜脚交一区二区| 中文在线8资源库| 国产精品欧美色图| 日韩一区二区三区资源| 免费 成 人 黄 色| 北条麻妃在线观看视频| 成人高潮aa毛片免费| 日韩美女在线视频| 久久一本综合频道| 日韩一区二区三区久久| 国产成人97精品免费看片| 久久久久久国产三级电影| 国产成人精品久久亚洲高清不卡| 久久精精品视频| 视频一区视频二区视频三区高| 亚洲精品国产精品自产a区红杏吧| 精品综合久久久| 欧美男女爱爱视频| 久久青青草原一区二区| 亚洲国产精品一区二区久久恐怖片| 久久尤物电影视频在线观看| jjzzjjzzjjzz| 特级丰满少妇一级aaaa爱毛片| 狠狠色狠狠色综合网| 色久优优欧美色久优优| 一区二区精品在线观看| 精品久久中文字幕| 国产精品久久久久久久久鸭| 99精品视频免费版的特色功能| 天堂中文在线资| 少妇无码av无码专区在线观看| 手机在线成人免费视频| 亚洲性图久久| 色婷婷国产精品免| 69p69国产精品| 精品99re| 李丽珍裸体午夜理伦片| 亚洲国产1区| heyzo中文字幕在线| 国产精品天堂蜜av在线播放| 欧美日韩另类丝袜其他| 2023国产精品自拍| 一区二区免费在线观看| 伊人久久在线观看| 亚洲人成影院77777| 久久毛片亚洲| 亚洲综合免费视频| 全色精品综合影院| 欧美国产一区二区三区激情无套| 精品久久av| 亚洲一区二区三区在线免费观看| 国产精品视频一二| 日韩精品社区| 粉嫩av一区二区三区粉嫩| 日韩黄色大片网站| 国产亚洲欧美日韩高清| 中国成人亚色综合网站| 最好2018中文免费视频| 国产在线中文字幕| 亚洲欧美日本一区| 成 人 免费 黄 色| 91豆花视频在线播放| 久久日韩精品| 性爽视频在线| 国产精品久久久乱弄| 国产精品日韩| √最新版天堂资源网在线| 国产一区二区三区在线视频| 欧美日韩一区二区三区视视频| 欧美网色网址| 亚洲香蕉av在线一区二区三区| 不卡一区二区三区四区| gogogogo高清视频在线| 国产一本一道久久香蕉| 美女亚洲一区| 国产精品亚洲无码| 狠狠干婷婷色| 51国产偷自视频区视频| 国产不卡一区二区三区在线观看| 国产精品国产自产拍高清av王其| 亚洲成av人片在线观看无| 中文字幕第80页| 亚洲男人在线| 91国产中文字幕| 欧美激情亚洲视频| 欧美成人精品一区二区三区| 97在线视频精品| 蜜桃91丨九色丨蝌蚪91桃色| 欧美黑人视频一区| 一级黄色录像免费看| 日本色图欧美色图| 伊人久久久久久久久久久久久久| 国产精品自拍一区| 先锋av资源| 在线观看精品一区| 在线一区二区三区做爰视频网站| 日韩欧美精品一区| av在线国产精品| 91.xxx.高清在线| 韩日午夜在线资源一区二区| 日韩中文字幕网址| 深夜福利在线看| 久久国产乱子伦免费精品| 韩日毛片在线观看| 亚洲一级爰片777777| 日本美女黄色一级片| 中国黄色片免费看| 精品999视频| 欧美综合二区| 麻豆精品一二三| 国产精品69久久久久水密桃| 亚洲欧洲成人| 亚洲黄色av一区| 最近2019中文字幕第三页视频| 日韩一区二区福利| 国产91精品高潮白浆喷水| 亚洲免费久久| 欧美激情2020午夜免费观看| 风流老熟女一区二区三区| **女人18毛片一区二区| 一区二区在线免费| 免费久久一级欧美特大黄| xxx国产精品| 亚洲成人性视频| 欧美极品少妇无套实战| 性欧美69式xxxxx| 日本强好片久久久久久aaa| 一级片免费网址| 亚洲 欧美 综合 另类 中字| 亚洲人成色777777老人头| 亚洲精品欧美激情| 91精品国产欧美一区二区18| 少妇特黄一区二区三区| 一区两区小视频| 一本一本大道香蕉久在线精品| 三年片免费观看大全| 欧美黑人一区| 18成人免费观看视频| 欧美精品一区二区三区很污很色的| 亚洲天堂av在线| 欧美日韩亚洲国产一区| 超碰成人福利网| 国产黄色片在线免费观看| 久久综合给合久久狠狠狠97色69| 噜噜噜久久亚洲精品国产品小说| 水蜜桃色314在线观看| 日韩av在线最新| www.亚洲激情.com| 少妇精品一区二区三区| 天天色影综合网| 日本乱理伦在线| 免费91在线观看| 精品中文字幕一区二区小辣椒| 欧美大荫蒂xxx| 国产黄色片大全| 天天综合网久久综合网| 国内精品久久久久久影视8| 一区二区在线高清视频| 亚洲精品一区二区网址| 成人精品视频99在线观看免费| 亚洲精选av在线| 青青草.com| 亚洲高清免费观看| 婷婷成人激情在线网| 欧美激情免费在线| 欧美成人一区二免费视频软件| 古典武侠综合av第一页| 久久www成人_看片免费不卡| 亚洲激情在线观看视频| 亚洲一区二区三区视频播放| 国语自产精品视频在线看一大j8| 久久影视电视剧免费网站清宫辞电视| 日韩精品久久久久久久| 日韩高清不卡一区| 美腿丝袜在线亚洲一区| 色综合91久久精品中文字幕| 国产成+人+综合+亚洲欧美| 国产精品久久久久久久久久新婚| 99热免费在线观看| 伦理片一区二区三区| 9l视频自拍蝌蚪9l视频成人| 国产人妖在线观看| 国产精品老牛| 亚洲激情在线观看视频免费| 91麻豆精品一二三区在线| 亚洲婷婷久久综合| 欧美a一级片| 最新版sss视频在线| 99视频在线精品| 日韩国产欧美精品| 国产一伦一伦一伦| 国产精品欧美一区喷水| 精品国产精品国产精品| 日本熟妇一区二区三区| 香港欧美日韩三级黄色一级电影网站| 成人免费在线网| 四虎影视国产在线视频| baoyu135国产精品免费| 国产精品一区二区三区成人| 一插菊花综合| 国产毛片久久| yiren22亚洲综合伊人22| 欧美日韩怡红院| 91网站最新网址| 99久久免费观看| 一级成人黄色片| 色135综合网| 久久日韩精品一区二区五区| 免费观看一级欧美片| 亚洲国产日韩欧美在线观看| 久久久久青草大香线综合精品| 日韩在线播放视频| 欧美一区二区三区四区高清| 亚洲奶汁xxxx哺乳期| 精品国产sm最大网站免费看| 欧美性猛片aaaaaaa做受| 一不卡在线视频| 久久国产在线视频| 99久久久无码国产精品不卡| 黄色免费看网站| 免费黄网站欧美| 九九视频免费看| 91高清视频在线免费观看| 99热国产在线中文| 欧美人妻一区二区三区| 色99中文字幕| 天天爽人人爽夜夜爽| 亚洲一二三在线观看| 欧美性猛交xxxx乱大交少妇| 国产超碰在线| 免费观看一级特黄欧美大片| 少妇性l交大片| 欧美国产成人精品一区二区三区| 亚洲色图丝袜美腿| 91在线观看入口| 无码人妻丰满熟妇区96| 高清在线不卡av| 手机成人av在线| 久久精品亚洲人成影院| 欧美精品videosbestsex另类| 韩国视频一区| 欧美主播福利视频| 98色花堂精品视频在线观看| 男女h黄动漫啪啪无遮挡软件| 欧美理论在线| 成人福利影视| 欧美美女一区二区三区| 日韩精品久久久久久久的张开腿让| www.国产| 日本少妇在线观看| 在线观看欧美视频| 伊人春色在线| 日韩欧美一区二区三区不卡视频| 国产精品自产拍在线观看中文|