精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Swift項目兼容Objective-C問題匯總

移動開發 iOS 開發工具
Swift項目需要使用封裝好的Objective-c組件、第三方類庫,蘋果提供的解決方案能夠處理日常大部分需求,但還不能稱之為完美,混編過程中會遇到很多問題。本文將Swift兼容Objective-c的問題匯總,以幫助大家更好的使用Swift,內容列表如下:

[[135968]]

一、解決問題

Swift項目需要使用封裝好的Objective-c組件、第三方類庫,蘋果提供的解決方案能夠處理日常大部分需求,但還不能稱之為完美,混編過程中會遇到很多問題。本文將Swift兼容Objective-c的問題匯總,以幫助大家更好的使用Swift,內容列表如下:

1. Swift調用Objective-c代碼

2. Objective-c調用Swift代碼

3. Swift兼容Xib/Storyboard

4. Objective-c巧妙調用不兼容的Swift方法

5. 多Target編譯錯誤解決

6. 第三方類庫支持

二、基礎混合編程

Swift與Objective-c的代碼相互調用,并不像Objective-c與C/C++那樣方便,需要做一些額外的配置工作。無論是Swift調用Objective-c還是Objective-c調用Swift,Xcode在處理上都需要兩個步驟:

 

2.1 Swift調用Objective-c代碼

Xcode對于Swift調用Objective-c代碼,除宏定義外,其它支持相對完善。

2.1.1 使用Objetvie-c的第一步

告訴Xcode、哪些Objective-c類要使用,新建.h頭文件,文件名可以任意取,建議采用“項目名-Bridging-Header.h”命令格式。

 

Tips

Swift之IOS項目,在Xcode6創建類文件,默認會自動選擇OS X標簽下的文件,這時一定要選擇iOS標簽下的文件,否則會出現語法智能提示不起作用,嚴重時會導致打包出錯。

2.1.2 第二步,Target配置,使創建的頭文件生效

設置Objective-C Bridging Header時,路徑要配置正確,例如:創建的名為“ILSwift-Bridging-Header.h”文件,存于ILSwift項目文件夾的根目錄下,寫法如下:

ILSwift/ILSwift-Bridging-Header.h

當然,在新項目中,直接創建一個Objective-c類,Xcode會提示:

直接選擇Yes即可,如果不小心點了其它按鈕,可以按照上面的步驟一步一步添加。

2.2 Objective-c調用Swift代碼

2.2.1 Objective-c調用Swift代碼兩個步驟

第一步告訴Xcode哪些類需要使用(繼承自NSObject的類自動處理,不需要此步驟),通過關鍵字@objc(className)來標記

  1. import UIKit 
  2. @objc(ILWriteBySwift) 
  3. class ILWriteBySwift { 
  4. var name: String! 
  5. class func newInstance() -> ILWriteBySwift { 
  6. return ILWriteBySwift() 

第二步引入頭文件,Xcode頭文件的命名規則為

  1. $(SWIFT_MODULE_NAME)-Swift.h 

示例如下:
 

  1. #import "ILSwift-Swift.h" 

Tips

不清楚SWIFT_MODULE_NAME可通過以下步驟查看

 

 

#p#

2.2.2找不到$(SWIFT_MODULE_NAME)-Swift.h

1.遇到此問題可按以下步驟做常規性檢查

確定導入SWIFT_MODULE_NAME)-Swift.h頭文件的文件名正確

SWIFT_MODULE_NAME)-Swift.h在clean后沒有重新構建,執行Xcode->Product->Build

2.頭文件循環

在混合編程的項目中,由于兩種語言的同時使用,經常會出現以下需求:在Swift項目中需要使用Objectvie-c寫的A類,而A類又會用到Swift的一些功能,頭文件的循環,導致編譯器不能正確構建$(SWIFT_MODULE_NAME)-Swift.h,遇到此問題時,在.h文件做如下處理

  1. //刪除以下頭文件 
  2. //#import "ILSwift-Swift.h" 
  3. //通過代碼導入類 
  4. @class ILSwiftBean; 

在Objevtive-c的.m文件最上面,添加

  1. #import "ILSwift-Swift.h" 

出現Use of undecalared identifier錯誤或者找不到方法,如下:

 

引起的原因有以下幾種可能:

使用的Swift類不是繼承自NSObject,加入關鍵字即可

SWIFT_MODULE_NAME)-Swift.h沒有實時更新,Xcode->Product->Build

此Swift文件中使用了Objective-c不支持的類型或者語法,如private

出現部分方法找不到的問題,Xcode無智能提示:

此方法使用了Objective-c不支持的類型或者語法

蘋果官方給出的不支持轉換的類型

Generics

Tuples

Enumerations defined in Swift

Structures defined in Swift

Top-level functions defined in Swift

Global variables defined in Swift

Typealiases defined in Swift

Swift-style variadics

Nested types

Curried functions

三、Xib/StoryBoard支持

Swift項目在使用Xib/StoryBoard時,會遇到兩種不同的問題

Xib:不加載視圖內容

Storyboard:找不到類文件

3.1 Xib不加載視圖內容

在創建UIViewController時,默認選中Xib文件,在Xib與類文件名一致時,可通過以下代碼實例化:
 

  1. let controller = ILViewController() 

運行,界面上空無一物,Xib沒有被加載。解決辦法,在類的前面加上@objc(類名),例如:

  1. import UIKit 
  2. @objc(ILViewController) 
  3. class ILViewController: UIViewController { 

Tips:

StoryBoard中創建的UIViewController,不需要@objc(類名)也能夠保持兼容

3.2 Storyboard找不到類文件

Swift語言引入了Module概念,在通過關鍵字@objc(類名)做轉換的時候,由于Storboard沒有及時更新Module屬性,會導致如下兩種類型錯誤:

3.2.1 用@objc(類名)標記的Swift類或者Objective-c類可能出現錯誤:

2015-06-02 11:27:42.626 ILSwift[2431:379047] Unknown class _TtC7ILSwift33ILNotFindSwiftTagByObjcController in Interface Builder file.

解決辦法,按下圖,選中Module中的空白,直接回車

3.2.2 無@objc(類名)標記的Swift類

  1. 2015-06-02 11:36:29.788 ILSwift[2719:417490] Unknown class ILNotFindSwiftController in Interface Builder file. 

解決辦法,按下圖,選擇正確的Module

3.產生上面錯誤的原因: 在設置好Storyboard后,直接在類文件中,添加或者刪除@objc(類名)關鍵字,導致Storyboard中 Module屬性沒有自動更新,所以一個更通用的解決辦法是,讓Storyboard自動更新Module,如下:

 

#p#

3.3 錯誤模擬Demo下載

為了能夠讓大家更清楚的了解解決流程,將上面的錯誤進行了模擬,想動手嘗試解決以上問題的同學可以直接下載demo

四、Objective-c巧妙調用不兼容的Swift方法

在Objective-c中調用Swift類中的方法時,由于部分Swift語法不支持轉換,會遇到無法找到對應方法的情況,如下:

  1. import UIKit 
  2. enum HTTPState { 
  3. case Succed, Failed, NetworkError, ServerError, Others 
  4. class ILHTTPRequest: NSObject { 
  5. class func requestLogin(userName: String, password: String, callback: (state: HTTPState) -> (Void)) { 
  6. dispatch_async(dispatch_get_global_queue(00), { () -> Void in 
  7. NSThread.sleepForTimeInterval(3
  8. dispatch_async(dispatch_get_main_queue(), { () -> Void in 
  9. callback(state: HTTPState.Succed) 
  10. }) 
  11. }) 

對應的$(SWIFT_MODULE_NAME)-Swift.h文件為:

  1. SWIFT_CLASS("_TtC12ILSwiftTests13ILHTTPRequest"
  2. @interface ILHTTPRequest : NSObject 
  3. - (SWIFT_NULLABILITY(nonnull) instancetype)init OBJC_DESIGNATED_INITIALIZER; 
  4. @end 

從上面的頭文件中可以看出,方法requestLogin使用了不支持的Swift枚舉,轉換時方法被自動忽略掉,有以下兩種辦法,可以巧妙解決類似問題:

4.1 用支持的Swift語法包裝

在Swift文件中,添加一個可兼容包裝方法wrapRequestLogin,注意此方法中不能使用不兼容的類型或者語法
 

  1. import UIKit 
  2. enum HTTPState: Int { 
  3. case Succed = 0, Failed = 1, NetworkError = 2, ServerError = 3, Others = 4 
  4. class ILHTTPRequest: NSObject { 
  5. class func requestLogin(userName: String, password: String, callback: (state: HTTPState) -> (Void)) { 
  6. dispatch_async(dispatch_get_global_queue(00), { () -> Void in 
  7. NSThread.sleepForTimeInterval(3
  8. dispatch_async(dispatch_get_main_queue(), { () -> Void in 
  9. callback(state: HTTPState.Succed) 
  10. }) 
  11. }) 
  12. class func wrapRequestLogin(userName: String, password: String, callback: (state: Int) -> (Void)) { 
  13. self.requestLogin(userName, password: password) { (state) -> (Void) in 
  14. callback(state: state.rawValue) 

對應的$(SWIFT_MODULE_NAME)-Swift.h文件為:

  1. SWIFT_CLASS("_TtC12ILSwiftTests13ILHTTPRequest"
  2. @interface ILHTTPRequest : NSObject 
  3. + (void)wrapRequestLogin:(NSString * __nonnull)userName password:(NSString * __nonnull)password callback:(void (^ __nonnull)(NSInteger))callback; 
  4. - (SWIFT_NULLABILITY(nonnull) instancetype)init OBJC_DESIGNATED_INITIALIZER; 
  5. @end 

此時,我們可以在Objective-c中直接使用包裝后的方法wrapRequestLogin

4.2 巧妙使用繼承

使用繼承可以支持所有的Swift類型,主要的功能在Objective-c中實現,不支持的語法在Swift文件中調用,例如,ILLoginSuperController做為父類

  1. @interface ILLoginSuperController : UIViewController 
  2. @property (weak, nonatomic) IBOutlet UITextField *userNameField; 
  3. @property (weak, nonatomic) IBOutlet UITextField *passwordField; 
  4. - (IBAction)loginButtonPressed:(id)sender; 
  5. @end 
  6. //////////////////////////////////////////////////////////////// 
  7. @implementation ILLoginSuperController 
  8. - (IBAction)loginButtonPressed:(id)sender 
  9. @end 

創建Swift文件,繼承自ILLoginSuperController,在此Swift文件中調用那些不支持的語法

  1. import UIKit 
  2. class ILLoginController: ILLoginSuperController { 
  3. override func loginButtonPressed(sender: AnyObject!) { 
  4. ILHTTPRequest.requestLogin(self.userNameField.text, password: self.passwordField.text) { (state) -> (Void) in 
  5. //具體業務邏輯 

五、多Target編譯錯誤解決

在使用多Target時,會出現一些編譯錯誤

5.1 Use of undeclared type

 

此類錯誤,是因為當前運行的Target找不到必須編譯文件。將文件添加到Target即可,如下支持ILSwiftTests Target,選中ILSwiftTests前的復選框即可

 

5.2 does not have a member named

此類錯誤可能由于如下兩種原因引起,解決辦法同上:

 

1.此方法來自父類,父類文件沒有加入到當前Target

2.此方法來自擴展,擴展沒有加入到當前Target

Tips

如果檢查發現,所有的類文件都已經準確添加到Target中,但編譯還是不通過,此時著重檢查橋接文件是否正確設置,是否將相應的頭文件加入到了橋接文件中。如無特別要求,建議將所有Target的橋接文件全都指向同一文件。關于橋接文件的設置,請參考2.1

六、第三方類庫支持

Swift項目取消了預編譯文件,一些第三方Objective-c庫沒有導入必要框架(如UIKit)引起編譯錯誤

6.1 Cocoapods找不到.o文件

在使用了Cocoapods項目中,會出現部分類庫的.o文件找不到,導致此種錯誤主要是以下兩種問題:

類庫本身存在編譯錯誤

Swift沒有預編譯,UIKit等沒有導入

將此庫文件中的代碼文件直接加到項目中,編譯,解決錯誤。

6.2 JSONModel支持

在Swift中可以使用JSONModel部分簡單功能,一些復雜的數據模型建議使用Objevtive-c

  1. import UIKit 
  2. @objc(ILLoginBean) 
  3. public class ILLoginBean: JSONModel { 
  4. var userAvatarURL: NSString? 
  5. var userPhone: NSString! 
  6. var uid: NSString! 

Tips

在Swift使用JSONModel框架時,字段只能是NSFoundation中的支持類型,Swift下新添加的String、Int、Array等都不能使用

6.3 友盟統計

Swift項目中引入友盟統計SDK會出現referenced from錯誤:

 

解決辦法,找到Other Linker Flags,添加-lz

 

七、綜述

現在大部分成熟的第三方框架都是使用Objective-c寫的,開發時不可避免的涉及到兩種語言的混合編程,期間會遇到很多奇怪的問題。因為未知才有探索的價值,Swift的簡潔快速,能夠極大的推進開發進度。所以從今天開始,大膽的開始嘗試。

責任編輯:chenqingxiang 來源: 一葉的博客
相關推薦

2013-08-21 14:57:42

objective-c問題

2014-07-01 09:22:01

SwiftObjective-CiOS

2022-07-11 10:17:19

Swift編程語言項目

2014-09-26 09:49:48

SwiftObjective-C

2014-06-05 13:54:03

SwiftiOSObjective-C

2014-09-24 11:15:05

Objective-CSwift

2014-10-13 09:54:08

Objective-CSwift

2011-08-10 18:07:29

Objective-C反射

2015-07-08 10:47:57

Using Swift CocoaObjective-C

2013-03-27 12:54:00

iOS開發Objective-C

2013-06-20 10:40:32

Objective-C實現截圖

2011-05-11 15:58:34

Objective-C

2011-05-11 11:20:26

Objective-C

2015-02-05 00:18:44

SwiftObjective-C

2017-04-07 16:00:59

SwiftObjective-CFramework

2011-08-16 13:34:23

Objective-C歸檔

2011-07-22 15:42:39

Objective-C UIView 內存

2011-08-04 11:15:46

Objective-C 構造函數 構造方法

2011-05-11 13:54:08

Objective-C

2011-05-11 14:06:49

Objective-C
點贊
收藏

51CTO技術棧公眾號

日韩精品欧美| 欧美日韩视频免费观看| av在线播放一区二区三区| 26uuu久久噜噜噜噜| 一级黄色录像毛片| 99热这里有精品| 精品久久久久久久久久久久久久| 午夜欧美在线一二页| 最新的欧美黄色| 亚洲精品久久一区二区三区777| 原纱央莉成人av片| 亚洲欧美日本韩国| 欧美日韩一区二区三区在线视频| 96日本xxxxxⅹxxx17| 99国产精品久久久久久久成人热| 最近的2019中文字幕免费一页| 男人添女人荫蒂国产| 国产一区一一区高清不卡| 亚洲午夜激情av| 亚洲一区3d动漫同人无遮挡| 亚洲色图欧美视频| 国产黄色91视频| 国产精品高清在线观看| 日本一区二区三区免费视频| 午夜免费一区| 一个人www欧美| 亚洲天堂av网站| 国产精品久久久久久久久久辛辛| 色综合咪咪久久| 男人日女人视频网站| 免费在线观看av网站| 91视频免费观看| 风间由美久久久| 国产精品久久久久久久免费| 日韩黄色在线观看| 欧美一级电影免费在线观看| 久久久精品一区二区涩爱| 午夜精品毛片| 日韩中文字幕在线视频| 永久免费毛片在线观看| 亚洲另类春色校园小说| 亚洲加勒比久久88色综合| 91视频福利网| 激情综合婷婷| 久久超碰97人人做人人爱| 亚洲午夜免费电影| 视频在线99re| 岛国在线视频| 国产亚洲欧美日韩在线一区| 麻豆成人av| 四虎成人免费在线| 成人免费的视频| 成人av资源| 自拍偷拍18p| 三级久久三级久久| 国产精品久久久久久av福利| 黄色片视频免费| 久久资源在线| 国产精品pans私拍| 嫩草影院一区二区三区| 日韩精品亚洲专区| 国产精品久久久久久久美男 | 亚洲丝袜美腿综合| 亚洲永久激情精品| free性欧美hd另类精品| 亚洲免费色视频| 日韩成人三级视频| 超碰在线cao| 欧美日韩亚洲激情| 成人免费xxxxx在线视频| 日本在线视频一区二区| 欧美日韩三级在线| 99999精品| 99ri日韩精品视频| 亚洲剧情一区二区| 91导航在线观看| 你懂的一区二区| 97久久久免费福利网址| 亚洲中文字幕无码爆乳av| 麻豆91精品视频| 99久久免费国| 欧美女v视频| 中文字幕一区二区视频| 久久久久久久久久久综合| 久久人妻精品白浆国产| 欧美大片高清| 555www色欧美视频| 亚洲熟女一区二区| 精品国产网站| 欧美成人一二三| 久久久久久久99| 日韩成人av影视| 51国产成人精品午夜福中文下载| 神马午夜精品95| 亚洲国产成人一区二区三区| 欧美a级免费视频| 一区二区电影免费观看| 欧美久久久久久久久久| 色综合久久五月| 日韩电影一区| 97婷婷涩涩精品一区| 日本一区二区三区久久| 国产成人精品一区二区三区四区 | 色www免费视频| 都市激情亚洲| 日韩中文字幕第一页| 亚洲综合一二三| 精品写真视频在线观看| 免费中文日韩| 狂野欧美激情性xxxx欧美| 欧美丝袜丝交足nylons| 大尺度做爰床戏呻吟舒畅| 日韩精品欧美激情一区二区| 欧美亚洲午夜视频在线观看| 99视频国产精品免费观看a| 久久久久国产精品麻豆| 日韩精品视频在线观看视频| 亚洲国产综合在线观看| 亚洲男人天堂手机在线| 免费中文字幕视频| 久久精品免费观看| 日本不卡一区| 黄色在线观看www| 欧美成人bangbros| 国产在线免费看| 三级欧美在线一区| 精品午夜一区二区| gratisvideos另类灌满| 91精品国产乱码久久蜜臀| 91精品国自产在线| 久久久亚洲人| 久久亚洲国产精品日日av夜夜| 蜜桃传媒在线观看免费进入| 欧美精品xxxxbbbb| 天天爽天天爽天天爽| 日本va欧美va精品| 欧美亚洲另类在线一区二区三区| 51漫画成人app入口| 欧美一级久久久| www色aa色aawww| 麻豆精品久久精品色综合| 日韩免费av一区二区三区| 成人免费看黄| 亚洲美女激情视频| 国产熟妇一区二区三区四区| 国产99久久久国产精品潘金 | wwwww黄色| 免费永久网站黄欧美| 狠狠色噜噜狠狠色综合久| 日本不卡影院| 亚洲第一综合天堂另类专| 国产亚洲第一页| 成人天堂资源www在线| 日本手机在线视频| 精品国产一区二区三区不卡蜜臂| 欧美国产日韩精品| 亚洲精品久久久蜜桃动漫| 亚洲主播在线播放| 美女久久久久久久久| 狠色狠色综合久久| 国产精品综合久久久久久| 69av成人| 亚洲丝袜av一区| 中文字幕+乱码+中文字幕明步| 中文字幕精品三区| 182午夜在线观看| 亚洲有吗中文字幕| 国产精品v欧美精品v日韩精品| 高清电影在线免费观看| 亚洲а∨天堂久久精品9966| 国产成人免费观看视频| 国产午夜久久久久| 91性高潮久久久久久久| 在线观看视频免费一区二区三区| 精品一区二区久久久久久久网站| 日韩av中字| 久久久999成人| 亚洲女同志亚洲女同女播放| 欧美日韩国产一区在线| 精品国产aaa| 国产精品一区免费在线观看| 欧洲精品一区二区三区久久| 蜜臀91精品国产高清在线观看| 国产精品入口福利| 色呦呦在线观看视频| 精品视频在线播放| 亚洲一区中文字幕在线| 亚洲最大的成人av| 欧美大波大乳巨大乳| 久久精品国产亚洲高清剧情介绍 | 亚洲第一综合网| 国产成人亚洲综合a∨婷婷| 国产九九九九九| 日韩不卡一区| 九九九九精品九九九九| 成人开心激情| 欧美激情精品久久久久久| 国产视频三级在线观看播放| 日韩一区二区在线播放| 无码人妻av免费一区二区三区| 国产精品久久久久久户外露出| 午夜福利三级理论电影| 美女精品一区二区| 欧美日韩性生活片| 99精品美女| 蜜桃传媒视频麻豆第一区免费观看| 四虎精品永久免费| 日本a级片电影一区二区| 三级网站视频在在线播放| 亚洲欧美资源在线| 黑人精品一区二区三区| 欧美日韩不卡视频| 少妇高潮av久久久久久| 亚洲一区二区成人在线观看| 日本激情视频一区二区三区| 久久亚洲精精品中文字幕早川悠里| 波多野结衣免费观看| 秋霞午夜av一区二区三区| 波多野结衣之无限发射| 亚洲精品久久久| 亚洲国产日韩欧美| 欧美人与拘性视交免费看| 国内成+人亚洲| 一本色道69色精品综合久久| 国产综合香蕉五月婷在线| 外国成人直播| 欧美中在线观看| 爱啪啪综合导航| 久久久久久av| 亚洲丝袜一区| 久久成人在线视频| 婷婷视频在线| 社区色欧美激情 | 岛国大片在线观看| 亚洲性视频网址| 免费在线超碰| 亚洲精选一区二区| 久久电影视频| 亚洲一级黄色av| yes4444视频在线观看| 亚洲视频在线观看视频| 毛片在线免费| 国产一区二区黑人欧美xxxx| 久热av在线| 一本色道久久88综合日韩精品| 国产一区二区三区不卡在线| 亚洲深夜福利在线| 女人偷人在线视频| 国产一区二区三区精品久久久| 亚洲区小说区图片区| 亚洲欧美国产精品| 都市激情一区| 日韩中文字幕亚洲| 影音先锋男人资源在线| 欧美激情欧美激情在线五月| 超碰在线资源| 2019日本中文字幕| 久久sese| 国产精品视频免费观看www| 亚洲伦理一区二区| 亚洲综合视频1区| 亚洲精品高潮| 久久精品国产美女| 精品国产乱码久久久久久蜜坠欲下| 日韩区国产区| 91精品秘密在线观看| 日韩一级特黄毛片| 伊人激情综合| 成人三级视频在线播放| 免费av网站大全久久| 亚洲精品在线网址| 成人免费看的视频| 这里只有久久精品| 亚洲色图另类专区| 国产做受高潮漫动| 欧美在线视频全部完| 国产三区在线播放| 亚洲第一级黄色片| 国产高清av在线| 久久国产精品免费视频| 大菠萝精品导航| 国产精品网站视频| 北条麻妃一区二区三区在线| 日本一区二区免费看| 五月激情综合| 每日在线更新av| 精品一区二区三区欧美| 污污内射在线观看一区二区少妇| 久久久国产精品麻豆| 紧身裙女教师波多野结衣| 午夜精品福利久久久| 影音先锋黄色网址| 亚洲国产成人爱av在线播放| av女优在线| 久久免费观看视频| 欧美成人福利| 精品一区二区三区日本| 久久久久久久久久久久久久久久久久 | 日本中文字幕观看| 久久综合资源网| 日本黄色片免费观看| 色婷婷精品久久二区二区蜜臀av| 国产三级在线观看视频| 夜夜嗨av一区二区三区四区 | 国产真实乱人偷精品| 国产精品无码永久免费888| 国产精品9191| 欧美一区二区日韩一区二区| 久久视频www| 国产69精品99久久久久久宅男| 久久青草视频| 欧美日韩高清在线一区| 国产精品a级| 日韩av一卡二卡三卡| 国产亚洲一区二区在线观看| 久久丫精品久久丫| 91精品国产品国语在线不卡| 国产一级在线| 国产91精品视频在线观看| 大奶在线精品| 黄色一级片av| 国产在线视频一区二区三区| 熟女少妇内射日韩亚洲| 欧美日韩国产综合新一区| 亚洲国产精品成人久久蜜臀| 超碰97人人做人人爱少妇| 福利一区二区| 天天久久人人| 日韩精品成人一区二区三区| 亚洲av成人无码一二三在线观看| 一区二区在线电影| 99国产揄拍国产精品| 久久精品电影一区二区| 国产日本久久| 色涩成人影视在线播放| 久久一区精品| 男生草女生视频| 欧美日韩一区二区免费视频| 午夜激情在线视频| 性色av一区二区三区免费| youjizz欧美| 亚洲理论电影在线观看| 国产成人免费视| 久久精品视频6| 日韩av综合网| 伊人久久综合一区二区| 日本一区二区在线| 日韩国产精品大片| eeuss中文字幕| 欧美日韩免费不卡视频一区二区三区 | 国产精品宾馆在线精品酒店| bt7086福利一区国产| 好吊操这里只有精品| 日韩精品久久久久久久玫瑰园| 僵尸再翻生在线观看免费国语| 久久精品人人做人人爽电影| 亚洲在线国产日韩欧美| 国产精品一二三区在线观看| 91国产成人在线| 视频一区二区三区不卡| 成人在线视频网站| 国产精品www.| 亚洲中文字幕一区| 91精品福利在线| 岛国成人毛片| 国产欧美日韩亚洲| 美女爽到呻吟久久久久| 99精品全国免费观看| 91麻豆精品91久久久久同性| 色av手机在线| 欧美日韩综合精品| 激情偷乱视频一区二区三区| 欧美人妻一区二区| 亚洲精品不卡在线| abab456成人免费网址| 女同性恋一区二区| 成人h动漫精品| 日批视频免费观看| 美女福利精品视频| 亚洲动漫在线观看| 中文字幕视频三区| 天天色 色综合| 日本视频不卡| 国产日韩精品久久| 免费久久99精品国产| 国产乡下妇女做爰视频| 亚洲图片欧美午夜| 亚洲精品国产九九九| 无码人妻丰满熟妇区五十路百度| 中文字幕亚洲电影| 无码国产伦一区二区三区视频| 国产精品国产三级国产aⅴ9色| 欧美国内亚洲| 亚洲性猛交xxxx乱大交| 日韩欧美一区二区在线视频| 欧美电影网站| 日本一区午夜艳熟免费| 中文一区二区完整视频在线观看| 隣の若妻さん波多野结衣| 国产精品久久久久久久天堂|