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

首頁 > 學院 > 開發設計 > 正文

編寫高質量OC代碼52建議總結:24.將類的實現代碼分散到便于管理的數個分類中

2019-11-06 09:40:09
字體:
來源:轉載
供稿:網友

類中經常會被填滿各種方法,這些方法經常會被堆在一個實現文件里。這種情況下可以通過OC中的“分類機制”,把類按邏輯劃入幾個分區中。

/*	    NSURLRequest.h    Copyright (c) 2003-2016, Apple Inc. All rights reserved.            Public header file.*/#import <Foundation/NSObject.h>#import <Foundation/NSDate.h>@class NSData;@class NSDictionary<KeyType, ObjectType>;@class NSInputStream;@class NSString;@class NSURL;@class NSURLRequestInternal;NS_ASSUME_NONNULL_BEGIN/*!    @header NSURLRequest.h    This header file describes the constructs used to rePResent URL    load requests in a manner independent of protocol and URL scheme.    Immutable and mutable variants of this URL load request concept    are described, named NSURLRequest and NSMutableURLRequest,    respectively. A collection of constants is also declared to    exercise control over URL content caching policy.    <p>NSURLRequest and NSMutableURLRequest are designed to be    customized to support protocol-specific requests. Protocol    implementors who need to extend the capabilities of NSURLRequest    and NSMutableURLRequest are encouraged to provide categories on    these classes as appropriate to support protocol-specific data. To    store and retrieve data, category methods can use the    <tt>+propertyForKey:inRequest:</tt> and    <tt>+setProperty:forKey:inRequest:</tt> class methods on    NSURLProtocol. See the NSHTTPURLRequest on NSURLRequest and    NSMutableHTTPURLRequest on NSMutableURLRequest for examples of    such extensions.    <p>The main advantage of this design is that a client of the URL    loading library can implement request policies in a standard way    without type checking of requests or protocol checks on URLs. Any    protocol-specific details that have been set on a URL request will    be used if they apply to the particular URL being loaded, and will    be ignored if they do not apply.*//*!    @enum NSURLRequestCachePolicy    @discussion The NSURLRequestCachePolicy enum defines constants that    can be used to specify the type of interactions that take place with    the caching system when the URL loading system processes a request.    Specifically, these constants cover interactions that have to do    with whether already-existing cache data is returned to satisfy a    URL load request.    @constant NSURLRequestUseProtocolCachePolicy Specifies that the    caching logic defined in the protocol implementation, if any, is    used for a particular URL load request. This is the default policy    for URL load requests.    @constant NSURLRequestReloadIgnoringLocalCacheData Specifies that the    data for the URL load should be loaded from the origin source. No    existing local cache data, regardless of its freshness or validity,    should be used to satisfy a URL load request.    @constant NSURLRequestReloadIgnoringLocalAndRemoteCacheData Specifies that    not only should the local cache data be ignored, but that proxies and    other intermediates should be instructed to disregard their caches    so far as the protocol allows.  Unimplemented.    @constant NSURLRequestReloadIgnoringCacheData Older name for    NSURLRequestReloadIgnoringLocalCacheData.    @constant NSURLRequestReturnCacheDataElseLoad Specifies that the    existing cache data should be used to satisfy a URL load request,    regardless of its age or expiration date. However, if there is no    existing data in the cache corresponding to a URL load request,    the URL is loaded from the origin source.    @constant NSURLRequestReturnCacheDataDontLoad Specifies that the    existing cache data should be used to satisfy a URL load request,    regardless of its age or expiration date. However, if there is no    existing data in the cache corresponding to a URL load request, no    attempt is made to load the URL from the origin source, and the    load is considered to have failed. This constant specifies a    behavior that is similar to an "offline" mode.    @constant NSURLRequestReloadRevalidatingCacheData Specifies that    the existing cache data may be used provided the origin source    confirms its validity, otherwise the URL is loaded from the    origin source.  Unimplemented.*/typedef NS_ENUM(NSUInteger, NSURLRequestCachePolicy){    NSURLRequestUseProtocolCachePolicy = 0,    NSURLRequestReloadIgnoringLocalCacheData = 1,    NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, // Unimplemented    NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,    NSURLRequestReturnCacheDataElseLoad = 2,    NSURLRequestReturnCacheDataDontLoad = 3,    NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented};/*! @enum NSURLRequestNetworkServiceType  @discussion The NSURLRequestNetworkServiceType enum defines constants that can be used to specify the service type to associate with this request.  The service type is used to provide the networking layers a hint of the purpose  of the request.  @constant NSURLNetworkServiceTypeDefault Is the default value for an NSURLRequest when created.  This value should be left unchanged for the vast majority of requests.  @constant NSURLNetworkServiceTypeVoip Specifies that the request is for voice over IP control traffic.  @constant NSURLNetworkServiceTypeVideo Specifies that the request is for video traffic. @constant NSURLNetworkServiceTypeBackground Specifies that the request is for background traffic (such as a file download). @constant NSURLNetworkServiceTypeVoice Specifies that the request is for voice data. @constant NSURLNetworkServiceTypeCallSignaling Specifies that the request is for call signaling.*/typedef NS_ENUM(NSUInteger, NSURLRequestNetworkServiceType){    NSURLNetworkServiceTypeDefault = 0,	// Standard internet traffic    NSURLNetworkServiceTypeVoIP = 1,	// Voice over IP control traffic    NSURLNetworkServiceTypeVideo = 2,	// Video traffic    NSURLNetworkServiceTypeBackground = 3, // Background traffic    NSURLNetworkServiceTypeVoice = 4,	   // Voice data    NSURLNetworkServiceTypeCallSignaling API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = 11, // Call Signaling};/*!    @class NSURLRequest        @abstract An NSURLRequest object represents a URL load request in a    manner independent of protocol and URL scheme.        @discussion NSURLRequest encapsulates two basic data elements about    a URL load request:    <ul>    <li>The URL to load.    <li>The policy to use when consulting the URL content cache made    available by the implementation.    </ul>    In addition, NSURLRequest is designed to be extended to support    protocol-specific data by adding categories to access a property    object provided in an interface targeted at protocol implementors.    <ul>    <li>Protocol implementors should direct their attention to the    NSURLRequestExtensibility category on NSURLRequest for more    information on how to provide extensions on NSURLRequest to    support protocol-specific request information.    <li>Clients of this API who wish to create NSURLRequest objects to    load URL content should consult the protocol-specific NSURLRequest    categories that are available. The NSHTTPURLRequest category on    NSURLRequest is an example.    </ul>    <p>    Objects of this class are used to create NSURLConnection instances,    which can are used to perform the load of a URL, or as input to the    NSURLConnection class method which performs synchronous loads.*/@interface NSURLRequest : NSObject <NSSecureCoding, NSCopying, NSMutableCopying>{    @private    NSURLRequestInternal *_internal;}/*!     @method requestWithURL:    @abstract Allocates and initializes an NSURLRequest with the given    URL.    @discussion Default values are used for cache policy    (NSURLRequestUseProtocolCachePolicy) and timeout interval (60    seconds).    @param URL The URL for the request.    @result A newly-created and autoreleased NSURLRequest instance.*/+ (instancetype)requestWithURL:(NSURL *)URL;/*!    @property supportsSecureCoding    @abstract Indicates that NSURLRequest implements the NSSecureCoding protocol.    @result A BOOL value set to YES.*/#if FOUNDATION_SWIFT_SDK_EPOCH_AT_LEAST(8)@property (class, readonly) BOOL supportsSecureCoding;#endif/*!    @method requestWithURL:cachePolicy:timeoutInterval:    @abstract Allocates and initializes a NSURLRequest with the given    URL and cache policy.    @param URL The URL for the request.     @param cachePolicy The cache policy for the request.     @param timeoutInterval The timeout interval for the request. See the    commentary for the <tt>timeoutInterval</tt> for more information on    timeout intervals.    @result A newly-created and autoreleased NSURLRequest instance. */+ (instancetype)requestWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval;/*!     @method initWithURL:    @abstract Initializes an NSURLRequest with the given URL.     @discussion Default values are used for cache policy    (NSURLRequestUseProtocolCachePolicy) and timeout interval (60    seconds).    @param URL The URL for the request.     @result An initialized NSURLRequest. */- (instancetype)initWithURL:(NSURL *)URL;/*!     @method initWithURL:    @abstract Initializes an NSURLRequest with the given URL and    cache policy.    @discussion This is the designated initializer for the     NSURLRequest class.    @param URL The URL for the request.     @param cachePolicy The cache policy for the request.     @param timeoutInterval The timeout interval for the request. See the    commentary for the <tt>timeoutInterval</tt> for more information on    timeout intervals.    @result An initialized NSURLRequest. */- (instancetype)initWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval NS_DESIGNATED_INITIALIZER;/*!     @method URL    @abstract Returns the URL of the receiver.     @result The URL of the receiver. */@property (nullable, readonly, copy) NSURL *URL;/*!     @method cachePolicy    @abstract Returns the cache policy of the receiver.     @result The cache policy of the receiver. */@property (readonly) NSURLRequestCachePolicy cachePolicy;/*!     @method timeoutInterval    @abstract Returns the timeout interval of the receiver.    @discussion The timeout interval specifies the limit on the idle    interval alloted to a request in the process of loading. The "idle    interval" is defined as the period of time that has passed since the    last instance of load activity occurred for a request that is in the    process of loading. Hence, when an instance of load activity occurs    (e.g. bytes are received from the network for a request), the idle    interval for a request is reset to 0. If the idle interval ever    becomes greater than or equal to the timeout interval, the request    is considered to have timed out. This timeout interval is measured    in seconds.    @result The timeout interval of the receiver. */@property (readonly) NSTimeInterval timeoutInterval;/*!    @method mainDocumentURL    @abstract The main document URL associated with this load.    @discussion This URL is used for the cookie "same domain as main    document" policy. There may also be other future uses.    See setMainDocumentURL:    NOTE: In the current implementation, this value is unused by the    framework. A fully functional version of this method will be available     in the future.     @result The main document URL.*/@property (nullable, readonly, copy) NSURL *mainDocumentURL;/*! @method networkServiceType @abstract Returns the NSURLRequestNetworkServiceType associated with this request. @discussion  This will return NSURLNetworkServiceTypeDefault for requests that have not explicitly set a networkServiceType (using the setNetworkServiceType method). @result The NSURLRequestNetworkServiceType associated with this request. */@property (readonly) NSURLRequestNetworkServiceType networkServiceType NS_AVAILABLE(10_7, 4_0);/*!  @method allowsCellularAccess: @abstract returns whether a connection created with this request is allowed to use the built in cellular radios (if present). @result YES if the receiver is allowed to use the built in cellular radios to satify the request, NO otherwise. */@property (readonly) BOOL allowsCellularAccess  NS_AVAILABLE(10_8, 6_0);@end/*!     @class NSMutableURLRequest        @abstract An NSMutableURLRequest object represents a mutable URL load    request in a manner independent of protocol and URL scheme.        @discussion This specialization of NSURLRequest is provided to aid    developers who may find it more convenient to mutate a single request    object for a series of URL loads instead of creating an immutable    NSURLRequest for each load. This programming model is supported by    the following contract stipulation between NSMutableURLRequest and     NSURLConnection: NSURLConnection makes a deep copy of each     NSMutableURLRequest object passed to one of its initializers.        <p>NSMutableURLRequest is designed to be extended to support    protocol-specific data by adding categories to access a property    object provided in an interface targeted at protocol implementors.    <ul>    <li>Protocol implementors should direct their attention to the    NSMutableURLRequestExtensibility category on    NSMutableURLRequest for more information on how to provide    extensions on NSMutableURLRequest to support protocol-specific    request information.    <li>Clients of this API who wish to create NSMutableURLRequest    objects to load URL content should consult the protocol-specific    NSMutableURLRequest categories that are available. The    NSMutableHTTPURLRequest category on NSMutableURLRequest is an    example.    </ul>*/@interface NSMutableURLRequest : NSURLRequest/*!     @method URL    @abstract Sets the URL of the receiver.     @param URL The new URL for the receiver. */@property (nullable, copy) NSURL *URL;/*!     @method setCachePolicy:    @abstract The cache policy of the receiver.     @param policy The new NSURLRequestCachePolicy for the receiver. */@property NSURLRequestCachePolicy cachePolicy;/*!     @method setTimeoutInterval:    @abstract Sets the timeout interval of the receiver.    @discussion The timeout interval specifies the limit on the idle    interval allotted to a request in the process of loading. The "idle    interval" is defined as the period of time that has passed since the    last instance of load activity occurred for a request that is in the    process of loading. Hence, when an instance of load activity occurs    (e.g. bytes are received from the network for a request), the idle    interval for a request is reset to 0. If the idle interval ever    becomes greater than or equal to the timeout interval, the request    is considered to have timed out. This timeout interval is measured    in seconds.    @param seconds The new timeout interval of the receiver. */@property NSTimeInterval timeoutInterval;/*!    @method setMainDocumentURL:    @abstract Sets the main document URL    @param URL The main document URL.    @discussion The caller should pass the URL for an appropriate main    document, if known. For example, when loading a web page, the URL    of the main html document for the top-level frame should be    passed.  This main document will be used to implement the cookie    "only from same domain as main document" policy, and possibly    other things in the future.    NOTE: In the current implementation, the passed-in value is unused by the    framework. A fully functional version of this method will be available     in the future. */@property (nullable, copy) NSURL *mainDocumentURL;/*! @method setNetworkServiceType: @abstract Sets the NSURLRequestNetworkServiceType to associate with this request @param networkServiceType The NSURLRequestNetworkServiceType to associate with the request. @discussion This method is used to provide the network layers with a hint as to the purpose of the request.  Most clients should not need to use this method. */@property NSURLRequestNetworkServiceType networkServiceType NS_AVAILABLE(10_7, 4_0);/*!  @method setAllowsCellularAccess @abstract sets whether a connection created with this request is allowed to use the built in cellular radios (if present). @param allow NO if the receiver should not be allowed to use the built in cellular radios to satisfy the request, YES otherwise.  The default is YES. */@property BOOL allowsCellularAccess NS_AVAILABLE(10_8, 6_0);@end/*!    @category NSURLRequest(NSHTTPURLRequest)     The NSHTTPURLRequest on NSURLRequest provides methods for accessing    information specific to HTTP protocol requests.*/@interface NSURLRequest (NSHTTPURLRequest) /*!     @method HTTPMethod    @abstract Returns the HTTP request method of the receiver.     @result the HTTP request method of the receiver. */@property (nullable, readonly, copy) NSString *HTTPMethod;/*!     @method allHTTPHeaderFields    @abstract Returns a dictionary containing all the HTTP header fields    of the receiver.    @result a dictionary containing all the HTTP header fields of the    receiver.*/@property (nullable, readonly, copy) NSDictionary<NSString *, NSString *> *allHTTPHeaderFields;/*!     @method valueForHTTPHeaderField:    @abstract Returns the value which corresponds to the given header    field. Note that, in keeping with the HTTP RFC, HTTP header field    names are case-insensitive.    @param field the header field name to use for the lookup    (case-insensitive).    @result the value associated with the given header field, or nil if    there is no value associated with the given header field.*/- (nullable NSString *)valueForHTTPHeaderField:(NSString *)field;/*!     @method HTTPBody    @abstract Returns the request body data of the receiver.     @discussion This data is sent as the message body of the request, as    in done in an HTTP POST request.    @result The request body data of the receiver. */@property (nullable, readonly, copy) NSData *HTTPBody;/*!    @method HTTPBodyStream    @abstract Returns the request body stream of the receiver    if any has been set    @discussion The stream is returned for examination only; it is    not safe for the caller to manipulate the stream in any way.  Also    note that the HTTPBodyStream and HTTPBody are mutually exclusive - only    one can be set on a given request.  Also note that the body stream is    preserved across copies, but is LOST when the request is coded via the     NSCoding protocol    @result The request body stream of the receiver.*/@property (nullable, readonly, retain) NSInputStream *HTTPBodyStream;/*!     @method HTTPShouldHandleCookies    @abstract Determine whether default cookie handling will happen for     this request.    @discussion NOTE: This value is not used prior to 10.3    @result YES if cookies will be sent with and set for this request;     otherwise NO.*/@property (readonly) BOOL HTTPShouldHandleCookies;/*! @method HTTPShouldUsePipelining @abstract Reports whether the receiver is not expected to wait for the previous response before transmitting. @result YES if the receiver should transmit before the previous response is received.  NO if the receiver should wait for the previous response before transmitting. */@property (readonly) BOOL HTTPShouldUsePipelining NS_AVAILABLE(10_7, 4_0);@end/*!    @category NSMutableURLRequest(NSMutableHTTPURLRequest)     The NSMutableHTTPURLRequest on NSMutableURLRequest provides methods    for configuring information specific to HTTP protocol requests.*/@interface NSMutableURLRequest (NSMutableHTTPURLRequest) /*!     @method HTTPMethod:    @abstract Sets the HTTP request method of the receiver.     @param method the new HTTP request method for the receiver.*/@property (copy) NSString *HTTPMethod;/*!     @method allHTTPHeaderFields:    @abstract Sets the HTTP header fields of the receiver to the given    dictionary.    @discussion This method replaces all header fields that may have    existed before this method call.     <p>Since HTTP header fields must be string values, each object and    key in the dictionary passed to this method must answer YES when    sent an <tt>-isKindOfClass:[NSString class]</tt> message. If either    the key or value for a key-value pair answers NO when sent this    message, the key-value pair is skipped.    @param headerFields a dictionary containing HTTP header fields.*/@property (nullable, copy) NSDictionary<NSString *, NSString *> *allHTTPHeaderFields;/*!     @method setValue:forHTTPHeaderField:    @abstract Sets the value of the given HTTP header field.    @discussion If a value was previously set for the given header    field, that value is replaced with the given value. Note that, in    keeping with the HTTP RFC, HTTP header field names are    case-insensitive.    @param value the header field value.     @param field the header field name (case-insensitive). */- (void)setValue:(nullable NSString *)value forHTTPHeaderField:(NSString *)field;/*!     @method addValue:forHTTPHeaderField:    @abstract Adds an HTTP header field in the current header    dictionary.    @discussion This method provides a way to add values to header    fields incrementally. If a value was previously set for the given    header field, the given value is appended to the previously-existing    value. The appropriate field delimiter, a comma in the case of HTTP,    is added by the implementation, and should not be added to the given    value by the caller. Note that, in keeping with the HTTP RFC, HTTP    header field names are case-insensitive.    @param value the header field value.     @param field the header field name (case-insensitive). */- (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field;/*!     @method HTTPBody:    @abstract Sets the request body data of the receiver.    @discussion This data is sent as the message body of the request, as    in done in an HTTP POST request.    @param data the new request body data for the receiver.*/@property (nullable, copy) NSData *HTTPBody;/*!    @method HTTPBodyStream:    @abstract Sets the request body to be the contents of the given stream.     @discussion The provided stream should be unopened; the request will take    over the stream's delegate.  The entire stream's contents will be     transmitted as the HTTP body of the request.  Note that the body stream    and the body data (set by setHTTPBody:, above) are mutually exclusive     - setting one will clear the other.     @param inputStream the new input stream for use by the receiver*/@property (nullable, retain) NSInputStream *HTTPBodyStream;/*!    @method HTTPShouldHandleCookies    @abstract Decide whether default cookie handling will happen for     this request.    @param YES if cookies should be sent with and set for this request;     otherwise NO.    @discussion The default is YES - in other Words, cookies are sent from and     stored to the cookie manager by default.    NOTE: In releases prior to 10.3, this value is ignored*/@property BOOL HTTPShouldHandleCookies;/*! @method HTTPShouldUsePipelining @abstract Sets whether the request should not wait for the previous response  before transmitting. @param YES if the receiver should transmit before the previous response is received.  NO to wait for the previous response before transmitting. @discussion Calling this method with a YES value does not guarantee HTTP  pipelining behavior.  This method may have no effect if an HTTP proxy is configured, or if the HTTP request uses an unsafe request method (e.g., POST requests will not pipeline).  Pipelining behavior also may not begin until the second request on a given TCP connection.  There may be other situations where pipelining does not occur even though YES was set. HTTP 1.1 allows the client to send multiple requests to the server without waiting for a response.  Though HTTP 1.1 requires support for pipelining, some servers report themselves as being HTTP 1.1 but do not support pipelining (disconnecting, sending resources misordered, omitting part of a resource, etc.). */@property BOOL HTTPShouldUsePipelining NS_AVAILABLE(10_7, 4_0);@endNS_ASSUME_NONNULL_END通過分類機制可以把類代碼分成很多個易于管理的小塊。NSURLRequest類及其可變版本NSMutableURLRequest類就是這么做的。這個類用于執行從URL中獲取數據的請求,而且通常使用HTTP協議從服務器獲取。 在編寫準備分享給其他開發者使用的程序庫時,可以考慮創建private分類。經常會遇到這樣一些方法:他們不是公共API的一部分。  總結: 1.使用分類機制把類的實現代碼劃分成易于管理的小塊 2.將應該視為“私有”的方法歸入名叫 private 的分類中,以隱藏實現細節。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人成伊人成综合网久久久| 精品五月天久久| 欧美专区第一页| 国产综合久久久久| 久久激情视频久久| 国产剧情日韩欧美| 92版电视剧仙鹤神针在线观看| 中文.日本.精品| 欧美极品美女电影一区| 成人国产亚洲精品a区天堂华泰| 欧美视频在线免费看| 国产精品扒开腿做爽爽爽男男| 亚洲xxx自由成熟| 国产精品精品久久久| 九九九久久久久久| 欧美肥老妇视频| 欧美日韩亚洲视频一区| 欧美电影《睫毛膏》| 欧美精品生活片| 日韩av在线电影网| 国产精品第3页| 久久久久久欧美| 亚洲加勒比久久88色综合| 中文字幕日韩在线视频| 91成人天堂久久成人| 青青青国产精品一区二区| 亚洲精品美女久久久| 欧美激情精品久久久| 日韩av在线电影网| 中文字幕精品—区二区| 久热精品视频在线观看一区| 久久99青青精品免费观看| 日韩在线视频观看正片免费网站| 国产精品久久久| 久久中文字幕在线视频| 日韩在线国产精品| 亲子乱一区二区三区电影| 91在线视频九色| 国产成人精品优优av| 国产91色在线|| 亚洲人成网站999久久久综合| 97香蕉超级碰碰久久免费软件| 国产精品黄色影片导航在线观看| 国内精品小视频在线观看| 日韩中文av在线| 日韩一级黄色av| 欧美成人网在线| 97在线精品视频| 成人两性免费视频| 久久久91精品国产| 欧美日韩国产一区中文午夜| 川上优av一区二区线观看| 在线精品91av| 97激碰免费视频| 欧洲亚洲妇女av| 一区二区三区天堂av| 欧美激情精品久久久久久大尺度| 欧美性猛xxx| 国产91免费观看| 亚洲精品欧美日韩专区| 亚洲影院色无极综合| 国产精品视频播放| 久久久久久久久久久人体| 亚洲a成v人在线观看| 国产日韩欧美视频| 91精品国产综合久久男男| 久热精品视频在线观看一区| 色久欧美在线视频观看| 亚洲桃花岛网站| 亚洲国产高清高潮精品美女| 亚洲精品一区久久久久久| 成人精品在线观看| 欧美电影免费观看电视剧大全| 久久久久国色av免费观看性色| 欧美精品电影免费在线观看| 久久久av一区| 日韩欧美在线播放| 91九色国产社区在线观看| 97视频在线观看网址| 精品香蕉一区二区三区| 欧美成人激情在线| 理论片在线不卡免费观看| 91欧美精品午夜性色福利在线| 日韩av网站导航| 亚洲自拍偷拍色片视频| 91精品综合久久久久久五月天| 欧美三级欧美成人高清www| 日韩精品在线观看一区| 国产亚洲成精品久久| 欧美伊久线香蕉线新在线| 亚洲精品福利在线观看| 国产精品亚发布| 日av在线播放中文不卡| 日韩精品免费电影| 国产精品av在线| 成人黄色激情网| 亚洲欧美日韩一区二区在线| 日韩av电影中文字幕| 欧美成人激情视频| 欧美专区日韩视频| 亚洲成人国产精品| 久久亚洲私人国产精品va| 日韩在线观看视频免费| 日韩免费在线看| 久久精品欧美视频| 69影院欧美专区视频| 中文字幕不卡在线视频极品| 国产精品一区av| 亚洲片在线观看| 久久伊人精品一区二区三区| 久久久久久久久久av| 久久99热这里只有精品国产| 午夜免费久久久久| 成人激情在线播放| 亚洲精品v欧美精品v日韩精品| 疯狂做受xxxx高潮欧美日本| 久久久久久久97| 色偷偷av一区二区三区| 亚洲国产一区二区三区在线观看| 国产精品国产亚洲伊人久久| 国产亚洲精品美女久久久| 欧洲美女免费图片一区| 国产在线观看精品一区二区三区| 欧美午夜丰满在线18影院| 国产欧美精品久久久| 日韩在线视频播放| 国产做受高潮69| 国产成人精品av在线| 国产成人avxxxxx在线看| 日韩在线中文字| 欧美区在线播放| 91九色视频导航| 亚洲午夜精品久久久久久久久久久久| 亚洲日韩欧美视频| 国产一区二中文字幕在线看| 欧美久久久精品| 亚洲欧美变态国产另类| 欧美尺度大的性做爰视频| 欧美韩国理论所午夜片917电影| 欧美怡春院一区二区三区| www.精品av.com| 国产成人精品a视频一区www| 欧美精品激情blacked18| 久久福利视频导航| 国产黑人绿帽在线第一区| 欧美电影第一页| 国内精品久久影院| 精品国产拍在线观看| 国产视频精品久久久| 8090理伦午夜在线电影| 国产精品久久久一区| 在线观看欧美日韩| 日韩免费视频在线观看| 久久久久久综合网天天| 精品国产999| 久久69精品久久久久久久电影好| 亚洲第一二三四五区| 欧美诱惑福利视频| 日韩中文在线视频| 亚洲第一国产精品| 国产精品久久久久久久久借妻| 国产精品成人一区| 隔壁老王国产在线精品| www亚洲精品|