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

ios9學習系列: Contacts Framework

移動開發(fā)
iOS 9 中,蘋果介紹了新的 Contacts framework。允許用戶使用 Objective-C 的 API 和設備的通訊錄進行交互,同樣適用于 Swift 語言。比起之前通過 AddressBook framework 來讀取聯(lián)系人信息來說,這是一個巨大的進步。因為 AddressBook framework 沒有 Objective-C 的 API,非常難用,用 Swift 寫的時候更是痛苦。希望新的 Contacts framework 能夠解決這些痛點。

iOS 9 中,蘋果介紹了新的 Contacts framework。允許用戶使用 Objective-C 的 API 和設備的通訊錄進行交互,同樣適用于 Swift 語言。比起之前通過 AddressBook framework 來讀取聯(lián)系人信息來說,這是一個巨大的進步。因為 AddressBook framework 沒有 Objective-C 的 API,非常難用,用 Swift 寫的時候更是痛苦。希望新的 Contacts framework 能夠解決這些痛點。

開發(fā)者有多不喜歡 AddressBook framework 呢?我想在 WWDC 的相關 session 里,當宣布 AddressBook framework 會在 iOS 9 中棄用后,現(xiàn)場爆發(fā)了最長時間、***聲的歡呼,就是***的證明。

從 Framework 中返回的聯(lián)系人是統(tǒng)一的,這意味著,如果你有從不同的數(shù)據(jù)源來的相同聯(lián)系人數(shù)據(jù),他們會自動合并,無需手動進行合并的操作。

使用新的 Contacts Framework

現(xiàn)在我們來創(chuàng)建一個簡單的應用。這個應用展示一個你的通訊錄的聯(lián)系人列表,同時允許你查看(聯(lián)系人的)詳細信息。

contact result

 

如果你所見,這是一個 master detail view controller 應用,在 iPhone 同樣可以很好的展示。在左邊是一個你的設備上的聯(lián)系人列表,右邊可以看到聯(lián)系人的頭像、姓名、電話號碼等詳細信息。

獲取用戶的聯(lián)系人

用Xcode 新建一個項目,只需要選擇 master detail view controller 模版就可以開始了。他會給你設置好。

創(chuàng)建好項目后,打開 MasterViewController 類,首先我們要在頭部引入 Contacts 和 ContactsUI 框架。

import Contacts

import ContactsUI

現(xiàn)在我們寫一個方法,填充 datasrouce的特性。這個方法要讀取和展示當前設備通訊錄里的聯(lián)系人。

func findContacts() -> [CNContact] {

let store = CNContactStore()

CNContactStore 是一個用來讀取和保存聯(lián)系人的新的類。這篇文章中我們僅僅展示如何讀取聯(lián)系人,但是你同樣可以(用此方法)進行展示和保存聯(lián)系人群組操作。

let keysToFetch = [CNContactFormatter.descriptorForRequiredKeysForStyle(.FullName),

CNContactImageDataKey,

CNContactPhoneNumbersKey]

let fetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch)

當我們有了這個聯(lián)系人數(shù)據(jù)庫的引用后,我們需要創(chuàng)建一個指定條件的請求,通過這個 query 的請求去獲取某些結果。創(chuàng)建一個 CNContactFetchRequest ,我們可以通過設置 contact keys 的數(shù)組,來獲取我們需要的結果。有趣的是,我們可以通過CNContactFormatter.descriptorForRequiredKeysForStyle(.FullName) 來格式化。這是CNContactFormattter 的一個非常方便的方法,稍后我們還會用到。

CNContactFormatter 需要很多不同的 keys,如果不使用 descriptorForRequiredKeysForStyle 方法,我們需要手動設置以下的 keys。

[CNContactGivenNameKey,

CNContactNamePrefixKey,

CNContactNameSuffixKey,

CNContactMiddleNameKey,

CNContactFamilyNameKey,

CNContactTypeKey...]

如你所見,要寫一大堆代碼。當 CNContactFormatter key 的需求發(fā)生改變,在從CNContactFormatter 生成一個字符串時,你會接到一個異常。

  1. var contacts = [CNContact]() 
  2.  
  3. do { 
  4.  
  5.     try store.enumerateContactsWithFetchRequest(fetchRequest, usingBlock: { (let contact, let stop) -> Void in 
  6.  
  7.     contacts.append(contact) 
  8.  
  9. }) 
  10.  
  11.  
  12. catch let error as NSError { 
  13.  
  14.     print(error.localizedDescription) 
  15.  
  16.  
  17. return contacts 

這段代碼非常簡單。我們所做的是從 CNContactStore 中遍歷所有符合我們需求的聯(lián)系人。這個request 沒有加任何的條件,所以會返回全部的聯(lián)系人,包含我們需要的 keys。我們把每一條記錄都逐個保存到一個數(shù)組中,返回。

現(xiàn)在我們要調用這個方法,用表格來展示結果。再次打開 MasterViewController, 添加一個屬性,用來展示結果。

var contacts = [CNContact]()

更新 viewDidLoad 方法,用同步的方法調用并存儲結果。

  1. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { 
  2.  
  3.     self.contacts = self.findContacts() 
  4.  
  5.     dispatch_async(dispatch_get_main_queue()) { 
  6.  
  7.         self.tableView!.reloadData() 
  8.  
  9.     } 
  10.  
  11.   
  12.  

 一旦保存好結果,刷新表格。

你需要修改一下 UITableViewDatasource 的方法來展示剛剛得到的結果。

  1. override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
  2.  
  3.     return self.contacts.count 
  4.  
  5.  
  6. override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
  7.  
  8.     let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) 
  9.  
  10.     let contact = contacts[indexPath.row] as CNContact 
  11.  
  12.     cell.textLabel!.text = "\(contact.givenName) \(contact.familyName)" 
  13.  
  14.     return cell 
  15.  

現(xiàn)在剩下的就是在 DetailViewController 中展示聯(lián)系人的詳細信息了。這里我不在細述,你需要在 DetailViewController 中添加一個圖像視圖、兩個標簽視圖,來展示頭像、姓名和電話號碼。并且在 interface builder 中創(chuàng)建 IBOutlet.

@IBOutlet weak var contactImageView: UIImageView!

@IBOutlet weak var contactNameLabel: UILabel!

@IBOutlet weak var contactPhoneNumberLabel: UILabel!

當這些做完,我們需要設置當前的值。在 configureView ,你需要添加下面這行代碼。

label.text = CNContactFormatter.stringFromContact(contact, style: .FullName)

正如我們之前提到的,CNContactFormatter 能夠很好的格式化聯(lián)系人的名字。我們所要做的僅僅是按需求格式化他們,formatter可以很好的控制格式。

在設置頭像時,我們需要先檢測一下 imageData 是否存在。如果設備上的某個聯(lián)系人沒有設置頭像, imageData 可能沒有,(不檢測的話)應用會崩潰。

  1. if contact.imageData != nil { 
  2.  
  3.     imageView.image = UIImage(data: contact.imageData!) 
  4.  
  5. else { 
  6.  
  7.     imageView.image = nil 
  8.  

如果存在,我們給 image view 設置好。

***,我們給電話號碼標簽指定值。

  1. if let phoneNumberLabel = self.contactPhoneNumberLabel { 
  2.  
  3.     var numberArray = [String]() 
  4.  
  5.     for number in contact.phoneNumbers { 
  6.  
  7.         let phoneNumber = number.value as! CNPhoneNumber 
  8.  
  9.         numberArray.append(phoneNumber.stringValue) 
  10.  
  11.     } 
  12.  
  13.     phoneNumberLabel.text = ", ".join(numberArray) 
  14.  

這是最終的展示結果。現(xiàn)在,我們擁有一個app,可以在左側,顯示設備上通訊錄中聯(lián)系人的列表,并可以逐個找到他的詳細信息。

 

contact details

 

使用 ContactsUI 選擇聯(lián)系人

也許我們希望這個應用,可以讓用戶自己選擇聯(lián)系人,并且展示詳細信息給我們。正如此前你看到的,這可能要寫很多代碼。如果這些功能已經(jīng)做好了的,會讓開發(fā)變的更加簡單。

這正是 ContactsUI framework 的功能。他提供了一套 view controllers,我們可以用在我們的應用中,展示聯(lián)系人的信息。

在這一節(jié),我們想讓用戶可以選擇某個電話號碼,并且保存起來。因為只是一個 demo,所以我們選擇在 MasterViewController 的右上角添加一個 UIBarButtonItem,然后在 MasterViewController 類中,給 UIBarButtonItem 一個方法。

@IBAction func showContactsPicker(sender: UIBarButtonItem) {

    let contactPicker = CNContactPickerViewController()

    contactPicker.delegate = self;

    contactPicker.displayedPropertyKeys = [CNContactPhoneNumbersKey]

    self.presentViewController(contactPicker, animated: true, completion: nil)

}

我們創(chuàng)建了一個簡單的 CNContactPickerViewController ,設置他的代理為 self.這樣我們就能夠響應他的請求,我們感興趣的事電話號碼,盡在選中電話號碼后,展示聯(lián)系人信息。CNContactPickerViewController 幫我們控制UI。

  1. func contactPicker(picker: CNContactPickerViewController, didSelectContactProperty contactProperty: CNContactProperty) { 
  2.  
  3.     let contact = contactProperty.contact 
  4.  
  5.     let phoneNumber = contactProperty.value as! CNPhoneNumber 
  6.  
  7.     print(contact.givenName) 
  8.  
  9.     print(phoneNumber.stringValue) 
  10.  

在 contactPicker 代理方法 didSelectContactProperty 中,我們復制一個CNContactProperty 對象。這是 CNContact 的一個 wrapper。讓我們來看一下他是怎么工作的。

 

contact picker

 

當我們點擊 MasterViewController 右上角的 UIBarButtonItem 后,會展示一個頁面。這個頁面是所有聯(lián)系人的列表,我們沒有添加任何的過濾條件。

 

contact selected

 

當你點擊某個聯(lián)系人,會展示出這個聯(lián)系人的電話列表。正是我們之前CNContactPhoneNumbersKey 里設置的一樣,這個頁面僅展示了我們需要的關鍵字段。

***,當你點擊了頁面中某些屬性,例如電話號碼后,會在 picker 關閉前觸發(fā) contactPicker:didSelectContactProperty方法。

在這個例子中,名字叫“Kate Bell”的聯(lián)系人是 CNContact 的一個例子。“phoneNumbers”是 key,“5555648583”是 CNPhoneNumber 的值。*** identifier 字符串作為他的 identifier property.

總結一下,這個例子里我們使用 ContactsUI framework 來展示選取某個聯(lián)系人,是多么簡單和易用。如果你想開發(fā)更加豐富的頁面,更自主的控制頁面的展示信息,Contacts framework 會給你提供很好的獲取數(shù)據(jù)信息的方式。

延伸閱讀

更多關于 Contacts Framework 的信息,我推薦你觀看WWDC 2015 的 session 223Introducing the Contacts Framework for iOS and OS X. ***不要忘了,你可以在Github 上找到我們已經(jīng)創(chuàng)建的本篇文章的Demo項目。

責任編輯:倪明 來源: Shinobi Controls
相關推薦

2015-09-16 09:55:12

ios9學習UIKit Dynam

2015-09-25 09:44:24

ios9MapkitTrans

2015-08-20 09:00:23

ios9api

2016-03-18 11:19:57

ios9replaykit入門

2015-08-24 09:19:05

ios9split scree

2015-08-20 09:19:46

ios9uistackview

2015-07-16 12:59:19

IOS9UIDynamics

2015-10-16 14:27:29

iOS9collectionV特性

2015-09-23 10:30:44

iOS 9UIStack Vie

2015-07-02 17:32:28

iOS 9蘋果

2015-09-09 15:51:54

2015-11-11 10:17:15

ios9聯(lián)系人框架干貨

2015-09-10 09:31:43

IOS9IOS9.1

2015-09-16 09:02:10

IOS9新功能搜索業(yè)務

2015-10-12 11:26:12

iOS 9適配

2015-07-13 16:56:40

IOS 9適配教程

2015-10-20 09:36:52

蘋果iOS 9字體

2015-07-27 09:04:33

ios9

2015-05-19 09:51:57

WWDCiOS9

2015-08-03 10:03:09

iosuistack vie
點贊
收藏

51CTO技術棧公眾號

eeuss中文字幕| 国产成人久久777777| 亚洲精品97久久中文字幕无码| 亚洲午夜激情在线| 亚洲精品在线91| 午夜精品久久久久久久99热影院| 欧洲成人综合网| 91丨porny丨国产| 成人美女av在线直播| 日本一二三区视频| 天天综合一区| 亚洲欧美另类在线观看| 一本之道在线视频| 搜成人激情视频| 亚洲午夜在线电影| 亚洲欧美日产图| 男人天堂网在线视频| 奇米四色…亚洲| 韩国19禁主播vip福利视频| 综合 欧美 亚洲日本| 哺乳一区二区三区中文视频| 欧美午夜精品理论片a级按摩| 国产精品videossex国产高清| 黄色国产在线| 99精品视频在线观看免费| 国产专区欧美专区| 国产成人亚洲欧洲在线| 欧美在线1区| 亚洲网在线观看| 日本黄色录像片| 精品国产三区在线| 欧美日韩大陆在线| av五月天在线| 电影网一区二区| 性欧美大战久久久久久久久| 影音先锋成人资源网站| 午夜免费福利在线观看| 久久久久久影视| 精品国产日本| 黄色a在线观看| 国产酒店精品激情| 91丝袜美腿美女视频网站| 国产一区免费看| 老鸭窝亚洲一区二区三区| 欧美激情国产日韩精品一区18| 亚洲二区在线播放| 久久精品青草| www.欧美免费| 亚洲精品久久久久久国| 欧美日韩亚洲在线观看| 亚洲最新av在线网站| 在线免费观看a级片| 红杏一区二区三区| 亚洲精品97久久| www.免费av| 久久精品国产亚洲blacked| 亚洲成人a级网| 一级国产黄色片| 日韩手机在线| 亚洲日本中文字幕免费在线不卡| 黑丝av在线播放| 台湾亚洲精品一区二区tv| 亚洲国产美女精品久久久久∴| 中文字幕天堂av| 黄色欧美网站| 亚洲人成欧美中文字幕| 干b视频在线观看| 成人毛片在线| 久久视频在线直播| 九九视频免费观看| 亚洲美女毛片| 国产成人一区二区| 一级黄色片网站| 九一九一国产精品| 国产精品国产精品| 五月婷婷激情在线| 日本一区免费视频| 久久久国产精华液999999| 在线看福利影| 亚洲va在线va天堂| av视屏在线播放| 91成人app| 精品99一区二区| 天天躁日日躁aaaxxⅹ| 成人毛片免费看| 色综合色综合网色综合| 男女视频免费看| 日韩中文字幕区一区有砖一区| 国产精品视频资源| 成人免费视频国产免费麻豆| 久久看人人爽人人| 吴梦梦av在线| 天堂中文在线播放| 9191久久久久久久久久久| 亚洲欧美高清在线| 欧美国产美女| 91av视频在线播放| 国产亲伦免费视频播放| 26uuu国产日韩综合| 亚洲资源在线网| 999精品网| 欧美日韩专区在线| 国产精品久久久久久在线观看| 国内成人精品| 欧美激情一级精品国产| 丰满熟女人妻一区二区三| 成人午夜av在线| 亚洲精品国产系列| 僵尸再翻生在线观看| 69堂国产成人免费视频| 麻豆av免费观看| 国产精品videosex极品| 国产精品视频自拍| 欧美挠脚心网站| 亚洲一区日韩精品中文字幕| 又色又爽又高潮免费视频国产| 99亚洲乱人伦aⅴ精品| 中文综合在线观看| 中文字幕av影院| 国产99久久久久| 一区二区三区免费看| 天堂中文最新版在线中文| 日韩精品一区二区三区四区| 国产破处视频在线观看| 免费看亚洲片| 国内精品久久久久久久果冻传媒| 欧美13一16娇小xxxx| 在线视频国产一区| 精品少妇人妻一区二区黑料社区| 国产精品地址| 亚洲在线第一页| 黄色一级片在线观看| 在线视频国产一区| 人妻一区二区视频| 香蕉久久夜色精品| 就去色蜜桃综合| 国模精品视频| 亚洲丁香婷深爱综合| 久久久久久久福利| 国产成人av一区二区三区在线| 亚洲一区高清| 婷婷久久免费视频| 久久久成人精品视频| 97免费观看视频| 国产精品私人自拍| 九色porny自拍| 999国产精品永久免费视频app| 国产精品老女人视频| 国产综合在线观看| 在线观看一区不卡| 人妻av无码一区二区三区| 日韩和欧美一区二区| 日韩av在线电影观看| 日韩一区二区三区免费视频| 中文字幕av一区中文字幕天堂| 这里只有精品国产| 综合欧美亚洲日本| 伊人成人免费视频| 亚洲国产精品久久久久蝴蝶传媒| 成人乱色短篇合集| 亚洲综合图区| 亚洲成人久久一区| 欧美三级韩国三级日本三斤在线观看| 99久久国产综合精品女不卡| 精品人妻一区二区三区四区在线 | 日韩精品视频一二三| 日韩欧美精品综合| 91免费电影网站| 久久不射影院| 日韩大片在线观看视频| 国产女主播喷水视频在线观看 | 国产黄大片在线观看| 亚洲精选中文字幕| 中文字幕在线观看免费| 一区二区三区视频在线看| 日本69式三人交| 日韩福利电影在线| 五月天在线免费视频| 激情小说一区| 国产免费亚洲高清| h片在线观看下载| 亚洲天堂av在线免费观看| 一级片视频免费| 亚洲一区自拍偷拍| 亚洲av综合一区二区| 国产中文字幕精品| 日韩欧美国产免费| 羞羞色午夜精品一区二区三区| 国产青春久久久国产毛片| 精品无人乱码一区二区三区| 麻豆理论在线观看| 成人午夜精品一区二区三区| 国产九九九九九| 国产一级淫片免费| 国产乱码一区二区三区| 日韩av新片网| 欧美影院三区| 成人免费91在线看| 日韩av福利| 久久成人综合视频| 日本五码在线| 欧美日本精品一区二区三区| 自拍偷拍欧美亚洲| 综合久久综合久久| 免费看污片的网站| www.av亚洲| gogogo高清免费观看在线视频| 亚洲黄色影院| 中文字幕超清在线免费观看| 免费观看不卡av| 国产精品成人一区二区三区| 色8久久久久| 奇米4444一区二区三区| 丰满的护士2在线观看高清| 在线亚洲男人天堂| 欧美色图另类| 精品成人一区二区三区四区| 国产精品欧美亚洲| 欧洲av在线精品| 少妇太紧太爽又黄又硬又爽| 亚洲一区在线电影| 懂色av懂色av粉嫩av| 国产精品久久久一本精品| 国产精品无码永久免费不卡| 国产成人综合在线播放| 女人高潮一级片| 日韩激情av在线| 日本成人在线免费视频| 国产欧美一级| 国产 日韩 欧美在线| 欧美天堂亚洲电影院在线观看| 中文字幕第一页亚洲| 日韩久久久久| 日韩欧美精品在线不卡| 女厕嘘嘘一区二区在线播放 | 亚洲欧美国产精品va在线观看| www.色亚洲| 91精品国产色综合久久不卡电影| 中文区中文字幕免费看| 91精品1区2区| 91porny九色| 在线观看免费成人| 无码人妻精品一区二区三区不卡| 日韩欧美中文字幕在线观看| www成人在线| 欧美午夜视频在线观看| 久久免费激情视频| 欧美日韩午夜剧场| 91精品国产高清一区二区三密臀| 天天综合色天天| 特级毛片www| 色999日韩国产欧美一区二区| 国产一级一级国产| 欧美综合一区二区三区| 在线观看xxxx| 91精品国产综合久久久蜜臀图片| 国产又粗又猛又黄又爽无遮挡 | 亚洲女同志亚洲女同女播放| 精品久久人人做人人爽| 欧美一区,二区| 日韩精品有码在线观看| 成人高清免费在线播放| 日韩有码在线视频| 成人影院www在线观看| 欧美激情18p| 欧美少妇精品| 国产精品美女久久久久av超清| 日韩黄色碟片| 99精品国产高清一区二区| 国产伦精品一区二区三区免费优势| 国产一区二区高清视频| 国产精品羞羞答答在线观看| 正在播放久久| 日韩视频不卡| 婷婷六月天在线| 国产精品99久久久久久久女警 | 中文字幕在线播出| 欧美一区二区三区电影| 少妇人妻偷人精品一区二区| 亚洲欧洲xxxx| 国产在线看片| 456亚洲影院| 精品国产黄a∨片高清在线| 97碰碰视频| 欧美禁忌电影网| 青青草原网站在线观看| 亚洲欧美日韩精品一区二区 | 国产精品77777| 丰满少妇在线观看资源站| 国产精品福利电影一区二区三区四区 | 91视频成人| 国产一区二区中文字幕免费看| 狠狠色丁香婷婷综合影院| 91大学生片黄在线观看| 日韩在线一区二区三区| 色综合久久久无码中文字幕波多| 久久影视一区二区| 一区二区视频免费看| 欧美中文字幕一区| 免费a级片在线观看| 日韩亚洲国产中文字幕| а√天堂8资源在线| 91在线视频一区| 久久99性xxx老妇胖精品| 在线观看17c| 日韩1区2区日韩1区2区| 欧美xxxxx精品| 亚洲人亚洲人成电影网站色| 久久久蜜桃一区二区| 亚洲成人性视频| 国产精品久久麻豆| 日韩美女视频免费在线观看| 成人av激情人伦小说| 中文字幕成人一区| 丝袜美腿亚洲色图| 欧美夫妇交换xxx| 一区二区三区四区在线播放| 中文字幕一区二区在线视频| 亚洲国产日韩欧美综合久久| 2024短剧网剧在线观看| 国产啪精品视频网站| 免费av一区| 欧美亚洲另类色图| 成人av电影在线播放| 精品欧美一区二区久久久久| 欧美男生操女生| av在线资源网| 国产精品国产三级国产aⅴ9色| 亚洲小说图片视频| 欧美黑人经典片免费观看| 国产精品性做久久久久久| 亚洲波多野结衣| 欧美精品一卡两卡| 在线视频1区2区| 国产精品久久久久久亚洲调教 | 国产精品一区二区在线看| 日本 欧美 国产| 欧美日韩精品欧美日韩精品一综合| 欧美另类自拍| 国产成人中文字幕| 国产精品一区高清| 日本三级免费观看| 久久欧美一区二区| 国产剧情在线视频| 亚洲精品一区久久久久久| 中文字幕在线中文字幕在线中三区| 精品在线不卡| 先锋影音久久久| 人妻av无码一区二区三区 | 亚洲视频在线观看一区二区| 永久555www成人免费| 日韩一区二区三区在线免费观看| 欧美日韩系列| 日本欧美一区二区| 欧美xxxooo| 日韩视频在线观看一区二区| 免费影视亚洲| 狠狠久久综合婷婷不卡| 午夜在线视频观看日韩17c| 天天躁日日躁aaaxxⅹ| 欧美性xxxxxx少妇| 人人干在线视频| 91成人免费观看| 在线日本高清免费不卡| 香蕉网在线播放| 欧美午夜电影在线播放| 黄网站在线播放| 动漫精品视频| 亚洲一区一卡| jizz日本在线播放| 日韩免费高清av| 北岛玲heyzo一区二区| 日韩欧美在线观看强乱免费| 久久草av在线| 国产亚洲第一页| 亚洲人成电影网| 国产不卡精品在线| 亚洲熟妇无码另类久久久| 国产日韩欧美在线一区| 国产suv一区二区| 欧美一区二区三区免费观看| 日韩精品诱惑一区?区三区| 久久久男人的天堂| 在线精品国精品国产尤物884a | 国内精品久久久久久中文字幕| 九九热线有精品视频99| 天天干天天曰天天操| 亚洲a一区二区| 91最新在线| 国产欧美韩日| 蜜臀av性久久久久蜜臀av麻豆| 久久精品这里只有精品| 精品视频一区在线视频| 99tv成人影院| 免费高清在线观看免费| 亚洲精品国产无套在线观| 你懂的免费在线观看| 91免费看网站| 日本不卡一区二区三区| 亚洲精品午夜久久久久久久|