精品欧美一区二区三区在线观看 _久久久久国色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://www.jxzklqfsx.com/php/viewart.php?artID=274108  
Cocoa 編碼指南 為方法命名: http://www.jxzklqfsx.com/php/viewart.php?artID=274104
Cocoa 編碼指南 為實例變量和數據類型命名:http://www.jxzklqfsx.com/php/viewart.php?artID=274094
Cocoa 編碼指南 框架開發者使用技巧和技術http://www.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技術棧公眾號

不卡的看片网站| av综合网页| 成人免费毛片嘿嘿连载视频| 久久久久中文字幕| 在线观看国产网站| av一区在线| 中文字幕免费观看一区| 亚洲淫片在线视频| 日本少妇毛茸茸高潮| 色婷婷综合久久久久久| 欧美特级限制片免费在线观看| 亚洲欧洲精品一区二区| 国产黄色一区二区| 免费一区视频| 久久综合久中文字幕青草| 真人bbbbbbbbb毛片| 99热这里有精品| 色婷婷av一区二区三区大白胸| 青青视频免费在线观看| 国产在线视频资源| 成人av中文字幕| 国产中文字幕91| av图片在线观看| 激情偷拍久久| 久久久无码精品亚洲日韩按摩| 欧美日韩亚洲综合在线 | 另类图片第一页| 在线不卡免费欧美| 欧美 日韩 国产 激情| a级片在线免费| 亚洲视频在线观看三级| 久久五月天婷婷| 色窝窝无码一区二区三区| 国产在线精品一区二区| 国产精品人成电影在线观看| 久久久久久少妇| 亚洲黄色天堂| 欧美另类暴力丝袜| av激情在线观看| 999精品视频| 中文字幕一精品亚洲无线一区| 中文字幕一区二区三区人妻电影| 大香伊人久久精品一区二区| 99精品久久久久久| 精品免费视频一区二区| 国产精品嫩草影院8vv8| 巨胸喷奶水www久久久免费动漫| 激情亚洲一区二区三区四区| 免费特级黄色片| 日本在线视频www鲁啊鲁| 中文字幕中文乱码欧美一区二区 | 四虎永久在线观看| 国产成人av一区二区三区在线| 亚洲在线视频福利| 国产伦精品一区二区三区视频痴汉| 蜜臀av一区二区在线免费观看 | 亚洲精品在线播放| 日韩丝袜情趣美女图片| 黄色aaaaaa| 国产一区 二区| 日韩一区二区免费高清| 香蕉视频1024| 超碰成人福利| 亚洲精品99久久久久| 六十路息与子猛烈交尾| 亚洲男人都懂第一日本| 一本色道久久综合狠狠躁篇怎么玩 | 粉嫩高潮美女一区二区三区| 国产成人精品日本亚洲11 | 亚洲欧洲在线看| 变态另类ts人妖一区二区| 日本午夜一区| 欧美成人午夜影院| 久草免费新视频| 国产欧美成人| 国产精品欧美激情| 国产精品久久久久久在线| 国产一区二区三区日韩 | 亚洲精品久久久久久无码色欲四季 | 欧美连裤袜在线视频| 国产精品秘入口| 1024国产精品| 久久99久久99精品| 第四色男人最爱上成人网| 欧美日韩视频一区二区| 蜜桃视频无码区在线观看| 欧美电影完整版在线观看| 亚洲偷熟乱区亚洲香蕉av| 在线观看美女av| 亚洲精品少妇| 国产综合久久久久| 欧日韩在线视频| 中文无字幕一区二区三区| 91传媒免费视频| 爱情电影社保片一区| 欧美精三区欧美精三区| 91丝袜在线观看| 99成人超碰| 午夜精品久久17c| 中文字幕一区二区人妻痴汉电车| 国产不卡视频在线观看| 欧美黄色直播| 欧美另类tv| 欧美唯美清纯偷拍| 人妻互换一二三区激情视频| 怕怕欧美视频免费大全| 欧美成人免费在线观看| aaa人片在线| 国产最新精品精品你懂的| 九九九久久久| 91精选在线| 欧美色倩网站大全免费| 四季av综合网站| 91精品天堂福利在线观看| 欧美在线激情网| 成人av无码一区二区三区| 中文字幕欧美激情| 欧美深夜福利视频| 欧美h版在线观看| 正在播放欧美视频| 国产精品久久久久久久妇| 国产精品99久久久| 亚洲高清视频一区二区| 伊人成综合网站| 精品欧美一区二区三区精品久久| 国产视频123区| 久久综合中文| 久久久影院一区二区三区| 图片区小说区亚洲| 欧美精品xxxxbbbb| 欧美aaa级片| 日韩国产欧美三级| 久久99精品国产99久久| 国产理论电影在线| 欧美xxxxxxxxx| 国产免费无码一区二区视频| 久久精品二区亚洲w码| 日韩经典在线视频| 中国色在线日|韩| 亚洲国产精品yw在线观看 | 一区二区蜜桃| 国产在线拍揄自揄视频不卡99| 国产区在线视频| 91福利视频网站| 日韩人妻无码精品综合区| 在线综合欧美| 久久久久一区二区| 成人性生交大片免费网站| 亚洲国产精品yw在线观看| 日本在线观看视频网站| 成人高清视频在线| 亚洲精品久久久久久久蜜桃臀| 日韩免费一级| 久久久久久久久久久网站| 亚洲av无码国产精品久久不卡| 依依成人综合视频| 日韩少妇一区二区| 一区二区日韩免费看| 精品国产一区二区三| 厕沟全景美女厕沟精品| 亚洲性av网站| 亚洲图片欧美在线| 亚洲天堂2016| 免费看91视频| 国产精品一页| 日韩精品一区二区三区丰满 | 999日本视频| 欧洲在线视频| 亚洲欧美福利视频| 亚洲 小说区 图片区| 一区二区中文视频| 中文字幕第六页| 99亚洲视频| 欧美一区二区三区电影在线观看 | 国产在线播放一区二区| 这里有精品可以观看| 中文字幕日韩视频| 亚洲AV无码国产精品午夜字幕 | 欧美另类高清videos的特点| 中文字幕欧美三区| av不卡中文字幕| 久久九九电影| a级网站在线观看| 久久久久观看| 国产精品美女久久久久久免费| av在线免费播放| 日韩av影视综合网| 在线观看免费观看在线| 一区二区三区精品| 妺妺窝人体色WWW精品| 蜜臀av一区二区在线观看| 亚洲精品国产suv一区88| 台湾佬综合网| 成人有码在线播放| 中文字幕在线免费观看视频| 精品国产区一区二区三区在线观看| а√天堂资源在线| 91国偷自产一区二区开放时间 | 成人在线播放视频| 欧美本精品男人aⅴ天堂| 色一情一乱一伦| 亚洲另类春色国产| 日韩一区二区a片免费观看| 国产麻豆精品95视频| caopor在线视频| 欧美激情aⅴ一区二区三区| 奇米影视首页 狠狠色丁香婷婷久久综合 | www.久久国产| 国产成人精品亚洲午夜麻豆| 国产裸体免费无遮挡| 在线不卡亚洲| 久久久成人精品一区二区三区| 国产精品欧美在线观看| 国产精品区一区二区三含羞草| 青草综合视频| 国产成人精品日本亚洲| 99在线视频影院| 美女国内精品自产拍在线播放| 川上优的av在线一区二区| 亚洲精品美女在线观看播放| 国产乱人乱偷精品视频| 欧美图区在线视频| 久久久成人免费视频| 亚洲国产精品一区二区www| 亚洲综合视频网站| 国产精品网站在线播放| 新91视频在线观看| 成人sese在线| 怡红院一区二区| 国产精品亚洲一区二区三区在线 | 成人久久久精品乱码一区二区三区 | 亚洲国产精品毛片| 亚洲婷婷丁香| 精品国产乱码久久久久久郑州公司| 亚洲精品a区| 99电影网电视剧在线观看| 91成人小视频| 成人福利网站在线观看| 国产亚洲精彩久久| 国产精品日韩在线| 日本欧美韩国| 国产精品男人爽免费视频1| 成人日韩在线观看| 国产va免费精品高清在线| 亚洲黄色免费看| 欧美一区二区.| 超碰国产一区| 国产精品欧美一区二区| 国产精品第一国产精品| 国产精品三级网站| 欧美一级做一级爱a做片性| 国产精品久久久久久av| 精品久久毛片| 91影视免费在线观看| 99亚洲男女激情在线观看| 97se国产在线视频| 盗摄牛牛av影视一区二区| 黄色99视频| 亚洲精品推荐| 亚洲国产精品毛片| 欧美a级一区| 日本阿v视频在线观看| 激情久久中文字幕| 男人靠女人免费视频网站| 噜噜噜在线观看免费视频日韩 | 成人精品国产一区二区4080| 国产51自产区| 26uuuu精品一区二区| 手机看片福利视频| 亚洲婷婷在线视频| 国产大片aaa| 91福利小视频| 精品毛片在线观看| 亚洲国产精品成人一区二区| 久青草国产在线| 久久在线观看视频| 好看的中文字幕在线播放| 欧美亚洲另类在线| 成人黄色免费观看| 成人欧美一区二区| 国产99亚洲| 黄色a级在线观看| 在线综合亚洲| 久久精品一卡二卡| 99久久精品99国产精品| 国产欧美一区二区三区在线观看视频 | 国产区欧美区日韩区| 国产精品中文字幕亚洲欧美| 在线观看免费黄色片| 99视频精品免费观看| 黄色小视频免费网站| yourporn久久国产精品| 免费看的黄色录像| 亚洲国产wwwccc36天堂| 中文字幕在线2019| 亚洲大胆人体在线| 五月婷婷在线观看| 国语自产精品视频在线看一大j8| 国产电影一区二区三区爱妃记| 91传媒视频在线观看| 久久av综合| 99在线观看视频免费| 麻豆精品在线看| 中文字幕5566| 亚洲影视资源网| 91精品国产乱码久久久久| 日韩av在线免费播放| 3d玉蒲团在线观看| 国产精品美女主播在线观看纯欲| 国产精品对白久久久久粗| 亚洲在线欧美| 久久精品人人做人人爽电影蜜月| 两女双腿交缠激烈磨豆腐| 中文字幕不卡在线播放| 午夜影院在线看| 日韩一区二区三区在线| 1区2区3区在线观看| 日本久久久久久久| 久久香蕉网站| 成人在线免费观看视频网站| 麻豆高清免费国产一区| www在线观看免费视频| 五月婷婷综合在线| 亚洲精品国产手机| 超碰91人人草人人干| 国产成人午夜性a一级毛片| 久久久久久久久久久久久久久久av| 国内精品久久久久久久97牛牛| 人人爽人人爽av| 国产精品萝li| 依依成人在线视频| 亚洲性av网站| 国产经典一区| 日韩精品一线二线三线| 久久性天堂网| 国产全是老熟女太爽了| 欧美日韩一区免费| 香蕉久久一区二区三区| 97精品视频在线观看| 国产精品nxnn| 国产黄页在线观看| 99国产一区二区三精品乱码| 日韩欧美亚洲视频| 亚洲电影免费观看高清完整版在线| 七七成人影院| 精品欧美一区二区三区久久久| 亚洲国内精品| 久久人人爽人人人人片| 欧美色视频日本高清在线观看| 天堂网在线播放| 日本a级片电影一区二区| 亚洲色图美女| 亚洲无吗一区二区三区| 国产欧美日韩一区二区三区在线观看| 久久国产乱子伦精品| 怡红院精品视频| 欧美综合影院| 国产女教师bbwbbwbbw| 成人精品鲁一区一区二区| 天天综合网入口| 一区二区三区视频免费在线观看 | 国产乱码精品一区二区三区卡| 亚洲一级影院| 久久久久久久久久久国产精品| 91国偷自产一区二区开放时间 | 国产区精品视频| 综合五月婷婷| 黄色网址在线视频| 日韩欧美一区视频| 一级片aaaa| 欧美影院精品一区| 日本高清在线观看wwwww色| 成人午夜小视频| 亚洲图片在线| 精品人妻无码一区二区三区 | 不卡的免费av| 国产精品亚洲一区二区三区妖精| 欧美色图另类小说| 国产日韩欧美高清| 国产精品午夜福利| 97激碰免费视频| av一区二区在线观看| 日本高清一区二区视频| 午夜精品福利一区二区三区av| 国产午夜在线视频| 亚洲一区二区久久久久久久| 亚洲伦理一区| 啪啪一区二区三区| 亚洲第一男人av| 精品福利在线| 精品国产一二三四区| 国产精品福利av| 视频二区在线观看| 成人性生交大片免费看视频直播 | 国产精品秘入口18禁麻豆免会员| 亚洲国产精品传媒在线观看| 亚洲欧美强伦一区二区| 国产精品久久久久9999| av成人天堂| 国产成人自拍网站|