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

Cocoa 編碼指南 為方法命名

移動開發 iOS
在面向對象軟件庫的設計過程中,開發人員經常忽視對類、方法、函數、常量以及其他編程接元素的命名。本節討論的是為方法命名,先來看內容。

Cocoa 編碼指南 為方法命名是本文要介紹的內容,方法可能是編程接口中最常見的元素了,因此對其命名要特別注意。本部分討論方法命名的相關方面:

通用規則

方法命名時,請記住下面這些通用的指導原則:

方法名稱應以小寫字符開頭,名稱中的單詞首字符要大寫。另外,請不要在方法名稱中使用前綴。您可以參考“書寫約定”一節,以了解更多信息。

有兩種特定的情況不適用該原則。其一,方法的名稱可以使用某個眾所周知的縮寫開頭,而該縮寫可以大寫(例如,TIFF 或者PDF)。其二,您可以使用前綴來分組并區分私有方法(請參考“私有方法”一節)。

如果方法代表一個對象執行的動作,則其名稱應該以一個動詞開頭:

  1. (void)invokeWithTarget:(id)target;   
  2.  (void)selectTabViewItem:(NSTabViewItem *)tabViewItem  

請不要使用 “do”或者 “does”作為名稱的一部分,因為這些輔助性的動詞 不能為名稱增加更多的含義。同時,請不要在動詞之前使用副詞或者形容詞。

如果方法返回接收者的某個屬性,則以屬性名稱作為方法名。如果方法沒有間接地返回一個或多個值,您也無須使用”get“這樣的單詞。

  1. (NSSize)cellSize;正確  
  2. (NSSize)calcCellSize;錯誤  
  3. (NSSize)getCellSize; 錯誤 

您可以參考 “存取方法”一節,以了解更多的信息。

所有參數前面都應使用關鍵字。

  1. (void)sendAction:(SEL)aSelector to:(id)anObject forAllCells:(BOOL)flag;正確  
  2. (void)sendAction:(SEL)aSelector :(id)anObject :(BOOL)flag;錯誤 

參數前面的單詞應能夠對參數進行描述。

  1. (id)viewWithTag:(int)aTag;正確  
  2. (id)taggedView:(int)aTag;錯誤 

如果您當前創建的方法比起它所繼承的方法更有針對性,則您應該在已有的方法名稱后面添加關鍵字,并將其作為新方法的名稱。

  1. (id)initWithFrame:(NSRect)frameRect; NSView  
  2. (id)initWithFrame:(NSRect)frameRect mode:(int)aMode cellClass:(Class)factoryId numberOfRows:(int)rowsHigh numberOfColumns:
  3. (int)colsWide;NSMatrix是NSView的子類。 

請不要使用”and“來連接兩個表示接受者屬性的關鍵字。

  1. (int)runModalForDirectory:(NSString *)path file:(NSString *) name types:(NSArray *)fileTypes;正確  
  2. (int)runModalForDirectory:(NSString *)path andFile:(NSString *)name andTypes:(NSArray *)fileTypes;錯誤 

雖然上面的例子使用”and“這個詞感覺還不錯,但是隨著創建的方法所帶有的關鍵字越來越多,這種方式會引起問題。

如果方法描述了兩個獨立的動作,請使用”and“把它們連接起來。

  1. (void)setNoun:(type)aNoun;  
  2. (type)noun; 

存取方法

存取方法用于設置或返回對象的屬性(也就是對象的實例變量)。由于屬性的表示方法不同,我們提倡的存取方法的格式也有差異:

如果某個屬性使用名詞來表示,則方法的格式如下:

  1. (void)setNoun:(type)aNoun;  
  2. (type)noun; 

例如:

  1. (void)setColor:(NSColor *)aColor;   
  2. (NSColor *)color;  

如果某個屬性使用形容詞表示, 則方法的格式為:

  1. (void)setAdjective:(BOOL)flag;  
  2. BOOL)isAdjective; 

例如:

  1. (void)setEditable:(BOOL)flag;   
  2. BOOL)isEditable;  

如果某個屬性使用動詞表示,則方法的格式為:

  1. (void)setVerbObject:(BOOL)flag;  
  2. (BOOL)verbObject; 

例如:

  1. (void)setShowsAlpha:(BOOL)flag;   
  2. (BOOL)showsAlpha;  

這種情況下,動詞應使用一般現在時的格式。

請不要使用分詞形式把動詞轉換為形容詞:

  1. (void)setAcceptsGlyphInfo:(BOOL)flag;正確  
  2. (BOOL)acceptsGlyphInfo;正確  
  3. (void)setGlyphInfoAccepted:(BOOL)flag;錯誤  
  4. (BOOL)glyphInfoAccepted;錯誤 

您可以使用情態動詞(在動詞前冠以“can”,"should","will"等),使得方法的名稱更加明確,但是請不要使用“do”或“does”這樣的情態動詞。

  1. (void)setCanHide:(BOOL)flag;正確  
  2. (BOOL)canHide;正確  
  3. (void)setShouldCloseDocument:(BOOL)flag;正確  
  4. (BOOL)shouldCloseDocument;正確  
  5. (void)setDoesAcceptGlyphInfo:(BOOL)flag;錯誤  
  6. (BOOL)doesAcceptGlyphInfo;錯誤 

只有當方法間接地返回對象或者數值,您才需要在方法名稱中使用get"。這種格式只適用于需要返回多個數據項的方法。

  1. (void)getLineDash:(float *)pattern count:(int *)count phase:(float *)phase;  
  2. NSBezierPath 

如果方法格式和上面一樣,則其實現應該能夠接受NULL 參數,這樣調用者才能夠表明他們對其中的一個或者多個返回值不感興趣。

委托方法

委托方法是指當某些事件發生時,對象在委托里調用的處理方法(如果委托實現了它們)。委托方法的格式獨特,但它也適用于在對象數據源里調用的方法:

方法名稱的開頭應標識出發送消息的對象所屬的類:

  1. (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(int)row;   
  2. (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename;  

在此,類的名稱不需要使用前綴并且首字符要小寫。

除非方法只有一個參數,并且該參數表示消息的發送者,否則類名稱后面都要加上一個冒號(參數是委托對象的引用)。

  1. (BOOL)applicationOpenUntitledFile:(NSApplication *)sender;  

如果是因為發送了一則通告而導致某個方法被調用,則上述原則不適用。在這種情況下,方法僅有的一個參數是通告對象。

  1. (void)windowDidChangeScreen:(NSNotification *)notification;  

如果調用某個方法是為了通知委托某個事件已經發生或者即將發生, 則請在方法名稱中使用“did”或者“will”這樣的助動詞。

  1. (void)browserDidScroll:(NSBrowser *)sender;   
  2. (NSUndoManager *)windowWillReturnUndoManager:(NSWindow *)window;  

如果調用某個方法是為了要求委托代表其他對象執行某件事,當然,您也可以在方法名稱中使用“did”或者“will”,但我們傾向于使用“should”。

  1. (BOOL)windowShouldClose:(id)sender;  

集合方法

對于管理一個對象集合的對象(每個被管理的對象稱為集合的一個元素),習慣上,我們要求它具有如下格式的方法:

  1. (void)addElement:(elementType)anObj;  
  2. (void)removeElement:(elementType)anObj;  
  3. (NSArray *)elements; 

例如:

  1. (void)addLayoutManager:(NSLayoutManager *)obj;   
  2. (void)removeLayoutManager:(NSLayoutManager *)obj;   
  3. (NSArray *)layoutManagers;  

下述內容是該原則的條件和細化:

如果集合確實是無序的, 則應返回一個NSSet類型的對象,而不是返回NSArray對象。

如果把元素插入到集合的指定位置這一功能很重要,則應使用與下面類似的方法來替換或者補充前述的某些方法。

  1. (void)insertLayoutManager:(NSLayoutManager *)obj atIndex:(int)index;   
  2. (void)removeLayoutManagerAtIndex:(int)index;  

使用集合方法時, 您需要記住下面這兩條實現細節:

上述方法通常隱含了它們對于被插入對象的所有權,因此,用于添加或者插入對象的代碼必須增加對象的計數,而用于移除對象的代碼也必須要釋放對象。

如果被插入的對象需要有一個指針指向其幕后的主對象, 則通常情況下, 您應該使用 set...這樣方法,它可以設置對象的背后對象指針,但并不增加其引用計數。我們以 insertLayoutManager:atIndex:方法為例,NSLayoutManager使用如下方法來實現這一功能:

  1. (void)setTextStorage:(NSTextStorage *)textStorage;   
  2. (NSTextStorage *)textStorage;  

正常情況下, 您應該不會直接調用setTextStorage:方法,但可能需要對其進行重寫。

我們還有另外一個示列用于展示集合方法的上述約定,它來自于NSWindow類:

  1. (void)addChildWindow:(NSWindow *)childWin ordered:(NSWindowOrderingMode)place;   
  2. (void)removeChildWindow:(NSWindow *)childWin;   
  3. (NSArray *)childWindows;   
  4. (NSWindow *)parentWindow;   
  5. (void)setParentWindow:(NSWindow *)window;  

方法的參數

下面是數條和方法參數命名相關的通用規則:

和方法名稱一樣, 參數的名稱也是以小寫的字符開頭,并且后續單詞的首字符要大寫。例如:removeObject:(id)anObject)。

請不要在參數名稱中使用"pointer"或者"ptr"。您應該使用參數的類型來聲明參數是否是一個指針。

請不要使用一到兩個字符的名稱作為參數名。

請不要使用只剩幾個字符的縮寫。

習慣上(在Cocoa中),我們把下面的關鍵字和參數應該組合在一起使用:

  1. ...action:(SEL)aSelector   
  2. ...alignment:(int)mode   
  3. ...atIndex:(int)index   
  4. ...content:(NSRect)aRect   
  5. ...doubleValue:(double)aDouble   
  6. ...floatValue:(float)aFloat   
  7. ...font:(NSFont *)fontObj   
  8. ...frame:(NSRect)frameRect   
  9. ...intValue:(int)anInt   
  10. ...keyEquivalent:(NSString *)charCode   
  11. ...length:(int)numBytes   
  12. ...point:(NSPoint)aPoint   
  13. ...stringValue:(NSString *)aString   
  14. ...tag:(int)anInt   
  15. ...target:(id)anObject   
  16. ...title:(NSString *)aString  

私有方法

大多數情況下,私有方法遵循和公共方法一樣的命名規則。但是,有一種常見的約定是為私有方法添加一個前綴,這樣我們就很容易區分它們。但即便是利用這樣的約定,私有方法的名稱還是有可能導致奇怪的問題。當您為某個Cocoa框架類設計子類時,您無法知道您的某個私有方法是否在無意中覆蓋了具有相同名稱的私有的框架方法

大部分Cocoa框架中私有方法的名稱都帶有一個下劃線前綴(例如,_fooData ),這個前綴把方法標記為私有。根據這樣的實際情況,我們給出兩條建議:

請不要在您的私有方法中使用下劃線作為前綴,因為蘋果公司保留使用這種命名約定。

在為某個很大的Cocoa框架類(例如NSView)派生子類時,如果需要絕對保證子類私有方法名稱不會和超類發生沖突,則您可以為子類私有方法添加自己的前綴。前綴應該盡可能地具有***性,也許您的前綴可以基于公司或者項目名稱,并且使用"XX_"這樣的格式。例如,如果您的項目叫做Byte Flogger,則前綴可以是BF_addObject:這樣的格式。

盡管為私有方法名稱添加前綴似乎和早前我們對類方法的命名要求相矛盾,但這是因為此處的目的和早前不同:我們這么做是為了避免在無意中重寫了超類中的私有方法。

小結:關于Cocoa 編碼指南 為方法命名的內容介紹完了,希望本文對你有所幫助!推薦幾篇相關內容:

Cocoa 編碼指南 代碼命名基礎: http://mobile.51cto.com/iphone-274085.htm
Cocoa 編碼指南 為函數命名: http://m.jxzklqfsx.com/php/viewart.php?artID=274108  
Cocoa 編碼指南 為方法命名: http://m.jxzklqfsx.com/php/viewart.php?artID=274104
Cocoa 編碼指南 為實例變量和數據類型命名:http://m.jxzklqfsx.com/php/viewart.php?artID=274094
Cocoa 編碼指南 框架開發者使用技巧和技術http://m.jxzklqfsx.com/php/viewart.php?artID=274094

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-07-07 10:39:07

Cocoa 函數

2011-07-07 10:07:19

Cocoa 框架

2011-07-07 10:18:58

Cocoa 實例變量 數據

2011-06-17 16:23:49

Cocoa蘋果

2011-07-07 10:50:09

Cocoa 框架

2011-07-07 13:30:32

Cocoa Core

2011-07-07 14:22:27

Cocoa 對象 生命周期

2011-06-17 15:57:46

CocoaXcode蘋果

2011-06-15 17:02:02

CocoaiOS

2011-07-07 14:46:10

Cocoa Xcode

2011-07-07 14:10:21

Cocoa 內省 hash

2011-06-17 15:38:15

Cocoa蘋果

2011-08-11 15:46:55

CocoaCocoa Touch框架

2011-08-10 19:33:09

Cocoa對象

2023-11-22 08:00:56

Go命名規范

2011-08-10 18:37:32

CocoaMac OS X

2011-07-08 10:49:59

Cocoa Touch 靜態庫

2011-07-07 13:51:24

Cocoa 框架

2011-05-11 15:27:58

Windows OOPCocoa MVCCocoa

2024-01-17 16:29:59

點贊
收藏

51CTO技術棧公眾號

在线看女人毛片| 男的操女的网站| 丰满少妇乱子伦精品看片| 美国成人xxx| 在线观看一区不卡| 91免费版看片| 国产最新视频在线| 国产一区不卡在线| 全球成人中文在线| 日韩影院一区二区| 国产精品视频一区二区三区四蜜臂| 亚洲乱码中文字幕综合| 久久成人资源| 国产激情视频在线播放 | 久久精品青青大伊人av| 欧美在线一级片| 国产高清日韩| 欧美色中文字幕| 欧美精品成人一区二区在线观看| 一级aaa毛片| 91综合视频| 亚洲美腿欧美激情另类| 欧美图片自拍偷拍| 欧美xxxx免费虐| 国产精品一区二区果冻传媒| 国产91网红主播在线观看| 久草视频免费播放| 色综合天天爱| 一本一道久久a久久精品逆3p| 亚洲精品乱码久久久久久蜜桃欧美| 视频91a欧美| 欧洲国内综合视频| 午夜精品久久久久久久无码| 中文字幕有码在线观看| 亚洲欧洲性图库| 国产精品久久久久久久久| 日韩精品电影一区二区| 国产成人福利av| 日韩一区二区免费电影| 91av视频免费观看| 激情中国色综合| 欧美性感一区二区三区| jizz欧美激情18| 亚洲成人人体| 色94色欧美sute亚洲线路一久 | 亚洲福利在线看| 18深夜在线观看免费视频| 祥仔av免费一区二区三区四区| 欧美三级在线看| 免费看污污网站| 日韩精品一区二区三区av| 91国模大尺度私拍在线视频| 成人羞羞国产免费网站| 成人福利视频| 色婷婷精品久久二区二区蜜臂av | 国产精品夜夜夜爽张柏芝| 日本三级视频在线播放| 1000精品久久久久久久久| 中文字幕一区二区三区在线乱码| 国产人妖一区二区三区| 久久99精品一区二区三区三区| 国产伦精品免费视频| 日本天堂中文字幕| 国产综合精品| 97精品国产97久久久久久免费| 午夜毛片在线观看| 婷婷久久国产对白刺激五月99| 日韩三级影视基地| 日韩在线中文字幕视频| 激情综合激情| 青青a在线精品免费观看| 天天爱天天做天天爽| 看国产成人h片视频| 91久久久久久久久久| 亚洲av永久无码国产精品久久| 天堂一区二区在线| 国产精品久久二区| 国产三级小视频| 成人h动漫精品| 国产又爽又黄的激情精品视频| 中文字幕欧美在线观看| 国产精品一区在线观看乱码| 国产欧美综合精品一区二区| 激情小视频在线| 亚洲视频中文字幕| 奇米精品一区二区三区| 成人在线高清| 亚洲精品在线三区| 超薄肉色丝袜一二三| 欧美韩一区二区| 亚洲性线免费观看视频成熟| 欧美日韩在线视频免费| 久久综合影视| 91精品网站| 毛片免费在线观看| 亚洲美女在线国产| 老熟妇仑乱视频一区二区| 欧一区二区三区| 亚洲色图激情小说| 久久久久久激情| 91成人国产| 欧美综合在线第二页| 国产毛片毛片毛片毛片毛片| 99热国产精品| 成年人三级视频| 欧美韩国亚洲| 91极品视觉盛宴| 中文字幕在线观看视频www| 免费看av成人| 久久久久久午夜| 国产精品玖玖玖| 26uuu国产一区二区三区| 亚洲国产一二三精品无码| 国模视频一区| 国产成人l区| 天堂久久av| 亚洲免费一在线| 激情综合五月网| 美洲天堂一区二卡三卡四卡视频| 国产精品久久亚洲7777| 天天在线视频色| 色一情一伦一子一伦一区| 亚洲av午夜精品一区二区三区| av毛片在线免费| 在线观看国产一区二区| 精品久久久久一区二区| 欧美在线观看天堂一区二区三区| 国产成人一区二区| 亚洲欧洲成人在线| 亚洲香肠在线观看| 国产精品入口芒果| 金瓶狂野欧美性猛交xxxx| 欧美日韩亚洲综合一区二区三区| 日本丰满少妇裸体自慰| 精品动漫3d一区二区三区免费版| 成人网欧美在线视频| 午夜在线小视频| 欧美无人高清视频在线观看| 一区二区三区四区免费| 久久成人在线| 欧洲精品一区色| 欧美羞羞视频| 国产亚洲激情视频在线| 久久国产视频一区| 麻豆精品新av中文字幕| 人禽交欧美网站免费| 欧美大片高清| 国产一级揄自揄精品视频| 精品久久久久久久久久久久久久久久| 免费看欧美女人艹b| 麻豆亚洲一区| 韩国美女久久| 国产一区二区三区在线免费观看| 91久久国产综合久久91| 国产日产欧美精品一区二区三区| www.日日操| 成人久久久久| 成人激情视频在线播放| 大片免费在线观看| 欧美一二三四在线| 成人免费看片98| 99视频国产精品| 久久综合久久色| 日韩理论电影院| 91日韩在线播放| 国产91足控脚交在线观看| 亚洲第一色中文字幕| 日韩一区二区视频在线| 国产偷v国产偷v亚洲高清| 蜜臀av免费观看| 在线精品视频在线观看高清| 成人免费视频观看视频| 性欧美videos高清hd4k| 日韩av中文字幕在线| 国产情侣小视频| 亚洲精品日日夜夜| 大尺度做爰床戏呻吟舒畅| 久久精品在线| 一区二区三区一级片| 亚洲天堂中文字幕在线观看| 欧美在线一级va免费观看| seseavlu视频在线| 欧美tickling网站挠脚心| 亚洲精品男人天堂| 欧美经典一区二区三区| 精品伦一区二区三区| 久久午夜电影| 日韩精品福利片午夜免费观看| 精品人人人人| 国产啪精品视频网站| 国产网红在线观看| 一个色综合导航| 女人18毛片一区二区三区| 在线免费亚洲电影| 久草中文在线视频| 欧美国产一区二区| 国产精久久久久| 蜜臀va亚洲va欧美va天堂| av在线com| 久久美女视频| 九九九九精品九九九九| 国产激情一区| 日韩美女写真福利在线观看| 欧美亚洲天堂| 中文字幕九色91在线| 黄色在线免费观看| 综合久久给合久久狠狠狠97色| 三级电影在线看| 国产一区在线观看视频| 国产成人精品视频ⅴa片软件竹菊| 欧美日本三区| 亚洲精品一区二区三区四区五区| 国产调教精品| 51国偷自产一区二区三区的来源 | 国产jzjzjz丝袜老师水多 | 午夜精品久久久99热福利| 性开放的欧美大片| 亚洲性夜色噜噜噜7777| 天堂av网在线| 精品伦理精品一区| 91午夜交换视频| 色婷婷一区二区三区四区| 国产一级二级毛片| 亚洲欧美日韩人成在线播放| 女人十八毛片嫩草av| 久久网站最新地址| 日本黄色免费观看| 不卡av免费在线观看| 又黄又爽又色的视频| 精品一区免费av| 欧美性猛交xxx乱久交| 六月婷婷一区| 国产精品亚洲αv天堂无码| 亚洲看片一区| 人人干视频在线| 亚洲无线视频| 欧美成人高潮一二区在线看| 欧美日韩一卡| 日本香蕉视频在线观看| 国内自拍一区| 日韩精品综合在线| 日韩视频一区| 国产网站免费在线观看| 亚洲综合另类| 韩国日本美国免费毛片| 日日夜夜精品视频免费| 国产视频一区二区视频| 秋霞成人午夜伦在线观看| 天堂av在线网站| 蜜桃视频免费观看一区| 精品久久久99| 国产伦精品一区二区三区在线观看| 日韩av一卡二卡三卡| 国产乱国产乱300精品| 精品人妻一区二区乱码| 成人永久免费视频| 免费午夜视频在线观看| 久久婷婷影院| 色呦色呦色精品| 国产成人免费视频| 亚洲少妇第一页| 欧美a一区二区| 日韩高清第一页| 国产精品一区二区在线观看不卡 | 精品毛片网大全| 男人天堂视频网| 欧美日韩成人在线一区| 国内精品国产成人国产三级| 亚洲第一精品夜夜躁人人爽| 天堂91在线| 日韩中文字幕不卡视频| 99热国产在线中文| 51精品国产黑色丝袜高跟鞋| 99riav视频一区二区| 51国偷自产一区二区三区的来源| 日本亚洲不卡| 最近中文字幕免费mv| 激情亚洲成人| 亚欧美在线观看| 国产69精品久久777的优势| 亚洲天堂网一区| 国产乱子伦视频一区二区三区| 久久性爱视频网站| 欧美国产日产图区| 国产一级在线观看视频| 在线欧美日韩国产| 丰满少妇被猛烈进入| 国产亚洲欧洲在线| 国产福利在线免费观看| 国产激情视频一区| jazzjazz国产精品久久| 视频一区国产精品| 亚洲茄子视频| 青青草久久伊人| 久久久久国产精品免费免费搜索| 欧美日韩午夜视频| 91久久精品国产91性色tv| 成人午夜视频一区二区播放| 色偷偷偷综合中文字幕;dd| 97蜜桃久久| 91在线精品播放| 欧美精品一区二区久久| 日韩小视频网站| 国模少妇一区二区三区| 亚洲欧美手机在线| 91在线看国产| 免费一级片在线观看| 欧美日本在线播放| 国产小视频在线观看| 久久男人av资源网站| 高清一区二区| 日韩欧美手机在线| 国产一区二区你懂的| 精品人妻二区中文字幕| 成人欧美一区二区三区1314| 国产一区二区视频免费| 日韩精品在线观看一区| sm在线播放| www.一区二区三区| 欧美高清日韩| 黄色片免费网址| 国产精品久久久久一区| aaa在线视频| 国产丝袜一区二区| 激情黄产视频在线免费观看| 国产精品久久久久久久久久久久午夜片 | 日韩尤物视频| 母乳一区在线观看| 亚洲国产欧美视频| 精品国产乱码久久久久久婷婷| 亚洲第九十九页| 欧美大片免费看| jizz久久精品永久免费| 欧美一级免费在线观看| 精品一区二区在线观看| 337人体粉嫩噜噜噜| 欧美在线影院一区二区| www.亚洲免费| 国产欧美日韩视频| 国产精品99一区二区三| 一区二区三区网址| 亚洲欧洲一区二区三区| 国产女人18毛片水真多| xx视频.9999.com| 国产精品视频一区视频二区| 国产911在线观看| 国产99久久久国产精品| 久久久一二三区| 亚洲福利视频网| 免费观看欧美大片| 日韩高清在线播放| 久久超级碰视频| 2018天天弄| 欧美精品一区二区高清在线观看 | 免费在线你懂的| 亚洲一区中文字幕在线观看| 欧美在线关看| 91视频最新入口| 国产欧美视频在线观看| 一级α片免费看刺激高潮视频| 久久久精品在线观看| 超碰地址久久| 无码精品a∨在线观看中文| 国产欧美一区二区在线| 一本色道久久综合精品婷婷| 欧美精品情趣视频| 欧美人妖在线观看| 天天爽夜夜爽一区二区三区| 亚洲人妖av一区二区| 日韩一级免费毛片| 国产精品久久久久久av下载红粉| 综合一区二区三区| 日b视频在线观看| 欧美绝品在线观看成人午夜影视| 天天干天天色天天| 欧美亚洲另类视频| 香蕉视频国产精品| 香蕉视频污视频| 欧美亚洲图片小说| 欧美精品videossex少妇| 热re99久久精品国99热蜜月| 精品一区二区三区免费| 中日韩精品视频在线观看| 中日韩美女免费视频网址在线观看| 欧美久久亚洲| 欧美 国产 小说 另类| 亚洲天堂免费看| 日本高清中文字幕二区在线| 91免费欧美精品| 美女视频一区免费观看| 九九热精彩视频| 伊人激情综合网| 欧美激情99| 69久久精品无码一区二区| 在线观看免费视频综合| xxxx在线视频| 在线一区亚洲| 久久久久久久综合日本| 理论片中文字幕| 亚洲www在线观看|