日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dataframe 控对象_iOS知识 - 常用小技巧大杂烩

發(fā)布時間:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dataframe 控对象_iOS知识 - 常用小技巧大杂烩 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1,打印View所有子視圖

po [[self view]recursiveDescription]

2,layoutSubviews調(diào)用的調(diào)用時機

* 當(dāng)視圖第一次顯示的時候會被調(diào)用。

* 添加子視圖也會調(diào)用這個方法。

* 當(dāng)本視圖的大小發(fā)生改變的時候是會調(diào)用的。

* 當(dāng)子視圖的frame發(fā)生改變的時候是會調(diào)用的。

* 當(dāng)刪除子視圖的時候是會調(diào)用的.

3,NSString過濾特殊字符

// 定義一個特殊字符的集合

NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:

@"@/:;()¥「」"、[]{}#%-*+=_\\|~<>$€^?'@#$%^&*()_+'\""];

// 過濾字符串的特殊字符

NSString *newString = [trimString stringByTrimmingCharactersInSet:set];

4,TransForm屬性

//平移按鈕

CGAffineTransform transForm = self.buttonView.transform;

self.buttonView.transform = CGAffineTransformTranslate(transForm, 10, 0);

//旋轉(zhuǎn)按鈕

CGAffineTransform transForm = self.buttonView.transform;

self.buttonView.transform = CGAffineTransformRotate(transForm, M_PI_4);

//縮放按鈕

self.buttonView.transform = CGAffineTransformScale(transForm, 1.2, 1.2);

//初始化復(fù)位

self.buttonView.transform = CGAffineTransformIdentity;

5,去掉分割線多余15像素

首先在viewDidLoad方法加入以下代碼:

if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {

[self.tableView setSeparatorInset:UIEdgeInsetsZero];

}

if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {

[self.tableView setLayoutMargins:UIEdgeInsetsZero];

}

然后在重寫willDisplayCell方法

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell

forRowAtIndexPath:(NSIndexPath *)indexPath{

if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {

[cell setSeparatorInset:UIEdgeInsetsZero];

}

if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {

[cell setLayoutMargins:UIEdgeInsetsZero];

}

}

6,計算方法耗時時間間隔

// 獲取時間間隔

#define TICK CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();

#define TOCK NSLog(@"Time: %f", CFAbsoluteTimeGetCurrent() - start)

7,Color顏色宏定義

// 隨機顏色

#define RANDOM_COLOR [UIColor colorWithRed:arc4random_uniform(256) / 255.0 green:arc4random_uniform(256) / 255.0 blue:arc4random_uniform(256) / 255.0 alpha:1]

// 顏色(RGB)

#define RGBCOLOR(r, g, b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]

// 利用這種方法設(shè)置顏色和透明值,可不影響子視圖背景色

#define RGBACOLOR(r, g, b, a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)]

8,Alert提示宏定義

#define Alert(_S_, ...) [[[UIAlertView alloc] initWithTitle:@"提示" message:[NSString stringWithFormat:(_S_), ##__VA_ARGS__] delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil] show]

8,讓 iOS 應(yīng)用直接退出

- (void)exitApplication {

AppDelegate *app = [UIApplication sharedApplication].delegate;

UIWindow *window = app.window;

[UIView animateWithDuration:1.0f animations:^{

window.alpha = 0;

} completion:^(BOOL finished) {

exit(0);

}];

}

**8,NSArray 快速求總和 最大值 最小值 和 平均值 **

NSArray *array = [NSArray arrayWithObjects:@"2.0", @"2.3", @"3.0", @"4.0", @"10", nil];

CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue];

CGFloat avg = [[array valueForKeyPath:@"@avg.floatValue"] floatValue];

CGFloat max =[[array valueForKeyPath:@"@max.floatValue"] floatValue];

CGFloat min =[[array valueForKeyPath:@"@min.floatValue"] floatValue];

NSLog(@"%f\n%f\n%f\n%f",sum,avg,max,min);

9,修改Label中不同文字顏色

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

[self editStringColor:self.label.text editStr:@"好" color:[UIColor blueColor]];

}

- (void)editStringColor:(NSString *)string editStr:(NSString *)editStr color:(UIColor *)color {

// string為整體字符串, editStr為需要修改的字符串

NSRange range = [string rangeOfString:editStr];

NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:string];

// 設(shè)置屬性修改字體顏色UIColor與大小UIFont

[attribute addAttributes:@{NSForegroundColorAttributeName:color} range:range];

self.label.attributedText = attribute;

}

10,播放聲音

#import

// 1.獲取音效資源的路徑

NSString *path = [[NSBundle mainBundle]pathForResource:@"pour_milk" ofType:@"wav"];

// 2.將路勁轉(zhuǎn)化為url

NSURL *tempUrl = [NSURL fileURLWithPath:path];

// 3.用轉(zhuǎn)化成的url創(chuàng)建一個播放器

NSError *error = nil;

AVAudioPlayer *play = [[AVAudioPlayer alloc]initWithContentsOfURL:tempUrl error:&error];

self.player = play;

// 4.播放

[play play];

11,檢測是否IPad Pro和其它設(shè)備型號

- (BOOL)isIpadPro

{

UIScreen *Screen = [UIScreen mainScreen];

CGFloat width = Screen.nativeBounds.size.width/Screen.nativeScale;

CGFloat height = Screen.nativeBounds.size.height/Screen.nativeScale;

BOOL isIpad =[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad;

BOOL hasIPadProWidth = fabs(width - 1024.f) < DBL_EPSILON;

BOOL hasIPadProHeight = fabs(height - 1366.f) < DBL_EPSILON;

return isIpad && hasIPadProHeight && hasIPadProWidth;

}

#define UI_IS_LANDSCAPE ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeLeft || [UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight)#define UI_IS_IPAD ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)#define UI_IS_IPHONE ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)#define UI_IS_IPHONE4 (UI_IS_IPHONE && [[UIScreen mainScreen] bounds].size.height < 568.0)#define UI_IS_IPHONE5 (UI_IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0)#define UI_IS_IPHONE6 (UI_IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0)#define UI_IS_IPHONE6PLUS (UI_IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0 || [[UIScreen mainScreen] bounds].size.width == 736.0) // Both orientations#define UI_IS_IOS8_AND_HIGHER ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0)

文/Originalee(簡書作者)原文鏈接:http://www.jianshu.com/p/9d36aa12429f著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),并標(biāo)注“簡書作者”。

11,修改Tabbar Item的屬性

// 修改標(biāo)題位置

self.tabBarItem.titlePositionAdjustment = UIOffsetMake(0, -10);

// 修改圖片位置

self.tabBarItem.imageInsets = UIEdgeInsetsMake(-3, 0, 3, 0);

// 批量修改屬性

for (UIBarItem *item in self.tabBarController.tabBar.items) {

[item setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:

[UIFont fontWithName:@"Helvetica" size:19.0], NSFontAttributeName, nil]

forState:UIControlStateNormal];

}

// 設(shè)置選中和未選中字體顏色

[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];

//未選中字體顏色

[[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor greenColor]} forState:UIControlStateNormal];

//選中字體顏色

[[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor cyanColor]} forState:UIControlStateSelected];

12,NULL - nil - Nil - NSNULL的區(qū)別

* nil是OC的,空對象,地址指向空(0)的對象。對象的字面零值

* Nil是Objective-C類的字面零值

* NULL是C的,空地址,地址的數(shù)值是0,是個長整數(shù)

* NSNull用于解決向NSArray和NSDictionary等集合中添加空值的問題

11,去掉BackBarButtonItem的文字

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)

forBarMetrics:UIBarMetricsDefault];

12,控件不能交互的一些原因

1,控件的userInteractionEnabled = NO

2,透明度小于等于0.01,aplpha

3,控件被隱藏的時候,hidden = YES

4,子視圖的位置超出了父視圖的有效范圍,子視圖無法交互,設(shè)置了。

5,需要交互的視圖,被其他視圖蓋住(其他視圖開啟了用戶交互)。

12,修改UITextField中Placeholder的文字顏色

[text setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];

}

13,視圖的生命周期

1、 alloc 創(chuàng)建對象,分配空間

2、 init (initWithNibName) 初始化對象,初始化數(shù)據(jù)

3、 loadView 從nib載入視圖 ,除非你沒有使用xib文件創(chuàng)建視圖

4、 viewDidLoad 載入完成,可以進(jìn)行自定義數(shù)據(jù)以及動態(tài)創(chuàng)建其他控件

5、 viewWillAppear視圖將出現(xiàn)在屏幕之前,馬上這個視圖就會被展現(xiàn)在屏幕上了

6、 viewDidAppear 視圖已在屏幕上渲染完成

1、viewWillDisappear 視圖將被從屏幕上移除之前執(zhí)行

2、viewDidDisappear 視圖已經(jīng)被從屏幕上移除,用戶看不到這個視圖了

3、dealloc 視圖被銷毀,此處需要對你在init和viewDidLoad中創(chuàng)建的對象進(jìn)行釋放.

viewVillUnload- 當(dāng)內(nèi)存過低,即將釋放時調(diào)用;

viewDidUnload-當(dāng)內(nèi)存過低,釋放一些不需要的視圖時調(diào)用。

14,應(yīng)用程序的生命周期

1,啟動但還沒進(jìn)入狀態(tài)保存 :

- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions

2,基本完成程序準(zhǔn)備開始運行:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

3,當(dāng)應(yīng)用程序?qū)⒁敕腔顒訝顟B(tài)執(zhí)行,應(yīng)用程序不接收消息或事件,比如來電話了:

- (void)applicationWillResignActive:(UIApplication *)application

4,當(dāng)應(yīng)用程序入活動狀態(tài)執(zhí)行,這個剛好跟上面那個方法相反:

- (void)applicationDidBecomeActive:(UIApplication *)application

5,當(dāng)程序被推送到后臺的時候調(diào)用。所以要設(shè)置后臺繼續(xù)運行,則在這個函數(shù)里面設(shè)置即可:

- (void)applicationDidEnterBackground:(UIApplication *)application

6,當(dāng)程序從后臺將要重新回到前臺時候調(diào)用,這個剛好跟上面的那個方法相反:

- (void)applicationWillEnterForeground:(UIApplication *)application

7,當(dāng)程序?qū)⒁顺鍪潜徽{(diào)用,通常是用來保存數(shù)據(jù)和一些退出前的清理工作:

- (void)applicationWillTerminate:(UIApplication *)application

15,判斷view是不是指定視圖的子視圖

BOOL isView = [textView isDescendantOfView:self.view];

16,判斷對象是否遵循了某協(xié)議

if ([self.selectedController conformsToProtocol:@protocol(RefreshPtotocol)]) {

[self.selectedController performSelector:@selector(onTriggerRefresh)];

}

17,頁面強制橫屏

#pragma mark - 強制橫屏代碼

- (BOOL)shouldAutorotate{

//是否支持轉(zhuǎn)屏

return NO;

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations{

//支持哪些轉(zhuǎn)屏方向

return UIInterfaceOrientationMaskLandscape;

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{

return UIInterfaceOrientationLandscapeRight;

}

- (BOOL)prefersStatusBarHidden{

return NO;

}

18,系統(tǒng)鍵盤通知消息

1、UIKeyboardWillShowNotification-將要彈出鍵盤

2、UIKeyboardDidShowNotification-顯示鍵盤

3、UIKeyboardWillHideNotification-將要隱藏鍵盤

4、UIKeyboardDidHideNotification-鍵盤已經(jīng)隱藏

5、UIKeyboardWillChangeFrameNotification-鍵盤將要改變frame

6、UIKeyboardDidChangeFrameNotification-鍵盤已經(jīng)改變frame

19,關(guān)閉navigationController的滑動返回手勢

self.navigationController.interactivePopGestureRecognizer.enabled = NO;

20,設(shè)置狀態(tài)欄背景為任意的顏色

- (void)setStatusColor

{

UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, 20)];

statusBarView.backgroundColor = [UIColor orangeColor];

[self.view addSubview:statusBarView];

}

21,讓Xcode的控制臺支持LLDB類型的打印

打開終端輸入三條命令:

touch ~/.lldbinit

echo display @import UIKit >> ~/.lldbinit

echo target stop-hook add -o \"target stop-hook disable\" >> ~/.lldbinit

下次重新運行項目,然后就不報錯了。

22,Label行間距

-(void)test{

NSMutableAttributedString *attributedString =

[[NSMutableAttributedString alloc] initWithString:self.contentLabel.text];

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

[paragraphStyle setLineSpacing:3];

//調(diào)整行間距

[attributedString addAttribute:NSParagraphStyleAttributeName

value:paragraphStyle

range:NSMakeRange(0, [self.contentLabel.text length])];

self.contentLabel.attributedText = attributedString;

}

23,UIImageView填充模式

@"UIViewContentModeScaleToFill", // 拉伸自適應(yīng)填滿整個視圖

@"UIViewContentModeScaleAspectFit", // 自適應(yīng)比例大小顯示

@"UIViewContentModeScaleAspectFill", // 原始大小顯示

@"UIViewContentModeRedraw", // 尺寸改變時重繪

@"UIViewContentModeCenter", // 中間

@"UIViewContentModeTop", // 頂部

@"UIViewContentModeBottom", // 底部

@"UIViewContentModeLeft", // 中間貼左

@"UIViewContentModeRight", // 中間貼右

@"UIViewContentModeTopLeft", // 貼左上

@"UIViewContentModeTopRight", // 貼右上

@"UIViewContentModeBottomLeft", // 貼左下

@"UIViewContentModeBottomRight", // 貼右下

24,宏定義檢測block是否可用

#define BLOCK_EXEC(block, ...) if (block) { block(__VA_ARGS__); };

// 宏定義之前的用法

if (completionBlock) {

completionBlock(arg1, arg2);

}

// 宏定義之后的用法

BLOCK_EXEC(completionBlock, arg1, arg2);

25,Debug欄打印時自動把Unicode編碼轉(zhuǎn)化成漢字

// 有時候我們在xcode中打印中文,會打印出Unicode編碼,還需要自己去一些在線網(wǎng)站轉(zhuǎn)換,有了插件就方便多了。

DXXcodeConsoleUnicodePlugin 插件

26,設(shè)置狀態(tài)欄文字樣式顏色

[[UIApplication sharedApplication] setStatusBarHidden:NO];

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

26,自動生成模型代碼的插件

// 可自動生成模型的代碼,省去寫模型代碼的時間

ESJsonFormat-for-Xcode

27,iOS中的一些手勢

輕擊手勢(TapGestureRecognizer)

輕掃手勢(SwipeGestureRecognizer)

長按手勢(LongPressGestureRecognizer)

拖動手勢(PanGestureRecognizer)

捏合手勢(PinchGestureRecognizer)

旋轉(zhuǎn)手勢(RotationGestureRecognizer)

27,iOS 開發(fā)中一些相關(guān)的路徑

模擬器的位置:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

文檔安裝位置:

/Applications/Xcode.app/Contents/Developer/Documentation/DocSets

插件保存路徑:

~/Library/ApplicationSupport/Developer/Shared/Xcode/Plug-ins

自定義代碼段的保存路徑:

~/Library/Developer/Xcode/UserData/CodeSnippets/

如果找不到CodeSnippets文件夾,可以自己新建一個CodeSnippets文件夾。

證書路徑

~/Library/MobileDevice/Provisioning Profiles

28,獲取 iOS 路徑的方法

獲取家目錄路徑的函數(shù)

NSString *homeDir = NSHomeDirectory();

獲取Documents目錄路徑的方法

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *docDir = [paths objectAtIndex:0];

獲取Documents目錄路徑的方法

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString *cachesDir = [paths objectAtIndex:0];

獲取tmp目錄路徑的方法:

NSString *tmpDir = NSTemporaryDirectory();

**29,字符串相關(guān)操作 **

去除所有的空格

[str stringByReplacingOccurrencesOfString:@" " withString:@""]

去除首尾的空格

[str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

- (NSString *)uppercaseString; 全部字符轉(zhuǎn)為大寫字母

- (NSString *)lowercaseString 全部字符轉(zhuǎn)為小寫字母

30, CocoaPods pod install/pod update更新慢的問題

pod install --verbose --no-repo-update

pod update --verbose --no-repo-update

如果不加后面的參數(shù),默認(rèn)會升級CocoaPods的spec倉庫,加一個參數(shù)可以省略這一步,然后速度就會提升不少。

31,MRC和ARC混編設(shè)置方式

在XCode中targets的build phases選項下Compile Sources下選擇 不需要arc編譯的文件

雙擊輸入 -fno-objc-arc 即可

MRC工程中也可以使用ARC的類,方法如下:

在XCode中targets的build phases選項下Compile Sources下選擇要使用arc編譯的文件

雙擊輸入 -fobjc-arc 即可

32,把tableview里cell的小對勾的顏色改成別的顏色

_mTableView.tintColor = [UIColor redColor];

33,調(diào)整tableview的separaLine線的位置

tableView.separatorInset = UIEdgeInsetsMake(0, 100, 0, 0);

34,設(shè)置滑動的時候隱藏navigationbar

navigationController.hidesBarsOnSwipe = Yes

35,自動處理鍵盤事件,實現(xiàn)輸入框防遮擋的插件

IQKeyboardManager

https://github.com/hackiftekhar/IQKeyboardManager

36,Quartz2D相關(guān)

圖形上下是一個CGContextRef類型的數(shù)據(jù)。

圖形上下文包含:

1,繪圖路徑(各種各樣圖形)

2,繪圖狀態(tài)(顏色,線寬,樣式,旋轉(zhuǎn),縮放,平移)

3,輸出目標(biāo)(繪制到什么地方去?UIView、圖片)

1,獲取當(dāng)前圖形上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

2,添加線條

CGContextMoveToPoint(ctx, 20, 20);

3,渲染

CGContextStrokePath(ctx);

CGContextFillPath(ctx);

4,關(guān)閉路徑

CGContextClosePath(ctx);

5,畫矩形

CGContextAddRect(ctx, CGRectMake(20, 20, 100, 120));

6,設(shè)置線條顏色

[[UIColor redColor] setStroke];

7, 設(shè)置線條寬度

CGContextSetLineWidth(ctx, 20);

8,設(shè)置頭尾樣式

CGContextSetLineCap(ctx, kCGLineCapSquare);

9,設(shè)置轉(zhuǎn)折點樣式

CGContextSetLineJoin(ctx, kCGLineJoinBevel);

10,畫圓

CGContextAddEllipseInRect(ctx, CGRectMake(30, 50, 100, 100));

11,指定圓心

CGContextAddArc(ctx, 100, 100, 50, 0, M_PI * 2, 1);

12,獲取圖片上下文

UIGraphicsGetImageFromCurrentImageContext();

13,保存圖形上下文

CGContextSaveGState(ctx)

14,恢復(fù)圖形上下文

CGContextRestoreGState(ctx)

37,屏幕截圖

// 1. 開啟一個與圖片相關(guān)的圖形上下文

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size,NO,0.0);

// 2. 獲取當(dāng)前圖形上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

// 3. 獲取需要截取的view的layer

[self.view.layer renderInContext:ctx];

// 4. 從當(dāng)前上下文中獲取圖片

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

// 5. 關(guān)閉圖形上下文

UIGraphicsEndImageContext();

// 6. 把圖片保存到相冊

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);

37,左右抖動動畫

//1, 創(chuàng)建核心動畫

CAKeyframeAnimation *keyAnima = [CAKeyframeAnimation animation];

//2, 告訴系統(tǒng)執(zhí)行什么動畫。

keyAnima.keyPath = @"transform.rotation";

keyAnima.values = @[@(-M_PI_4 /90.0 * 5),@(M_PI_4 /90.0 * 5),@(-M_PI_4 /90.0 * 5)];

// 3, 執(zhí)行完之后不刪除動畫

keyAnima.removedOnCompletion = NO;

// 4, 執(zhí)行完之后保存最新的狀態(tài)

keyAnima.fillMode = kCAFillModeForwards;

// 5, 動畫執(zhí)行時間

keyAnima.duration = 0.2;

// 6, 設(shè)置重復(fù)次數(shù)。

keyAnima.repeatCount = MAXFLOAT;

// 7, 添加核心動畫

[self.iconView.layer addAnimation:keyAnima forKey:nil];

38,CALayer 的知識

CALayer 負(fù)責(zé)視圖中顯示內(nèi)容和動畫

UIView 負(fù)責(zé)監(jiān)聽和響應(yīng)事件

創(chuàng)建UIView對象時,UIView內(nèi)部會自動創(chuàng)建一個圖層(既CALayer)

UIView本身不具備顯示的功能,是它內(nèi)部的層才有顯示功能.

CALayer屬性:

position 中點(由anchorPoint決定)

anchorPoint 錨點

borderColor 邊框顏色

borderWidth 邊框?qū)挾?/p>

cornerRadius 圓角半徑

shadowColor 陰影顏色

contents 內(nèi)容

opacity 透明度

shadowOpacity 偏移

shadowRadius 陰影半徑

shadowColor 陰影顏色

masksToBounds 裁剪

39,性能相關(guān)

1. 視圖復(fù)用,比如UITableViewCell,UICollectionViewCell.

2. 數(shù)據(jù)緩存,比如用SDWebImage實現(xiàn)圖片緩存。

3. 任何情況下都不能堵塞主線程,把耗時操作盡量放到子線程。

4. 如果有多個下載同時并發(fā),可以控制并發(fā)數(shù)。

5. 在合適的地方盡量使用懶加載。

6. 重用重大開銷對象,比如:NSDateFormatter、NSCalendar。

7. 選擇合適的數(shù)據(jù)存儲。

8. 避免循環(huán)引用。避免delegate用retain、strong修飾,block可能導(dǎo)致循環(huán)引用,NSTimer也可能導(dǎo)致內(nèi)存泄露等。

9. 當(dāng)涉及到定位的時候,不用的時候最好把定位服務(wù)關(guān)閉。因為定位耗電、流量。

10. 加鎖對性能有重大開銷。

11. 界面最好不要添加過多的subViews.

12. TableView 如果不同行高,那么返回行高,最好做緩存。

13. Viewdidload 里盡量不要做耗時操作。

40,驗證身份證號碼

//驗證身份證號碼

- (BOOL)checkIdentityCardNo:(NSString*)cardNo

{

if (cardNo.length != 18) {

return NO;

}

NSArray* codeArray = [NSArray arrayWithObjects:@"7",@"9",@"10",@"5",@"8",@"4",@"2",@"1",@"6",@"3",@"7",@"9",@"10",@"5",@"8",@"4",@"2", nil];

NSDictionary* checkCodeDic = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1",@"0",@"X",@"9",@"8",@"7",@"6",@"5",@"4",@"3",@"2", nil] forKeys:[NSArray arrayWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil]];

NSScanner* scan = [NSScanner scannerWithString:[cardNo substringToIndex:17]];

int val;

BOOL isNum = [scan scanInt:&val] && [scan isAtEnd];

if (!isNum) {

return NO;

}

int sumValue = 0;

for (int i =0; i<17; i++) {

sumValue+=[[cardNo substringWithRange:NSMakeRange(i , 1) ] intValue]* [[codeArray objectAtIndex:i] intValue];

}

NSString* strlast = [checkCodeDic objectForKey:[NSString stringWithFormat:@"%d",sumValue%11]];

if ([strlast isEqualToString: [[cardNo substringWithRange:NSMakeRange(17, 1)]uppercaseString]]) {

return YES;

}

return NO;

}

41,響應(yīng)者鏈條順序

1> 當(dāng)應(yīng)用程序啟動以后創(chuàng)建 UIApplication 對象

2> 然后啟動“消息循環(huán)”監(jiān)聽所有的事件

3> 當(dāng)用戶觸摸屏幕的時候, "消息循環(huán)"監(jiān)聽到這個觸摸事件

4> "消息循環(huán)" 首先把監(jiān)聽到的觸摸事件傳遞了 UIApplication 對象

5> UIApplication 對象再傳遞給 UIWindow 對象

6> UIWindow 對象再傳遞給 UIWindow 的根控制器(rootViewController)

7> 控制器再傳遞給控制器所管理的 view

8> 控制器所管理的 View 在其內(nèi)部搜索看本次觸摸的點在哪個控件的范圍內(nèi)(調(diào)用Hit test檢測是否在這個范圍內(nèi))

9> 找到某個控件以后(調(diào)用這個控件的 touchesXxx 方法), 再一次向上返回, 最終返回給"消息循環(huán)"

10> "消息循環(huán)"知道哪個按鈕被點擊后, 在搜索這個按鈕是否注冊了對應(yīng)的事件, 如果注冊了, 那么就調(diào)用這個"事件處理"程序。(一般就是執(zhí)行控制器中的"事件處理"方法)

42,使用函數(shù)式指針執(zhí)行方法和忽略performSelector方法的時候警告

不帶參數(shù)的:

SEL selector = NSSelectorFromString(@"someMethod");

IMP imp = [_controller methodForSelector:selector];

void (*func)(id, SEL) = (void *)imp;

func(_controller, selector);

帶參數(shù)的:

SEL selector = NSSelectorFromString(@"processRegion:ofView:");

IMP imp = [_controller methodForSelector:selector];

CGRect (*func)(id, SEL, CGRect, UIView *) = (void *)imp;

CGRect result = func(_controller, selector, someRect, someView);

忽略警告:

#pragma clang diagnostic push

#pragma clang diagnostic ignored "-Warc-performSelector-leaks"

[someController performSelector: NSSelectorFromString(@"someMethod")]

#pragma clang diagnostic pop

如果需要忽視的警告有多處,可以定義一個宏:

#define SuppressPerformSelectorLeakWarning(Stuff) \

do {\

_Pragma("clang diagnostic push") \

_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"") \

Stuff; \

_Pragma("clang diagnostic pop") \

} while (0)

使用方法:

SuppressPerformSelectorLeakWarning(

[_target performSelector:_action withObject:self]

);

43,UIApplication的簡單使用

--------設(shè)置角標(biāo)數(shù)字--------

//獲取UIApplication對象

UIApplication *ap = [UIApplication sharedApplication];

//在設(shè)置之前, 要注冊一個通知,從ios8之后,都要先注冊一個通知對象.才能夠接收到提醒.

UIUserNotificationSettings *notice =

[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];

//注冊通知對象

[ap registerUserNotificationSettings:notice];

//設(shè)置提醒數(shù)字

ap.applicationIconBadgeNumber = 20;

--------設(shè)置聯(lián)網(wǎng)狀態(tài)--------

UIApplication *ap = [UIApplication sharedApplication];

ap.networkActivityIndicatorVisible = YES;

--------------------------

44, UITableView隱藏空白部分線條

self.tableView.tableFooterView = [[UIView alloc]init];

45,顯示git增量的Xcode插件:GitDiff

下載地址:https://github.com/johnno1962/GitDiff

這款插件的名字是GitDiff,作用就是可以顯示表示出git增量提交的代碼行,比如下圖

會在Xcode左邊標(biāo)識出來:

46,各種收藏的網(wǎng)址

unicode編碼轉(zhuǎn)換

http://tool.chinaz.com/tools/unicode.aspx

JSON 字符串格式化

http://www.runoob.com/jsontool

RGB 顏色值轉(zhuǎn)換

http://www.sioe.cn/yingyong/yanse-rgb-16/

短網(wǎng)址生成

http://dwz.wailian.work/

MAC 軟件下載

http://www.waitsun.com/

objc 中國

http://objccn.io/

47,NSObject 繼承圖

48,淺拷貝、深拷貝、copy和strong

淺拷貝:(任何一方的變動都會影響到另一方)

只是對對象的簡單拷貝,讓幾個對象共用一片內(nèi)存,當(dāng)內(nèi)存銷毀的時候,指向這片內(nèi)存的幾個指針

需要重新定義才可以使用。

深拷貝:(任何一方的變動都不會影響到另一方)

拷貝對象的具體內(nèi)容,內(nèi)存地址是自主分配的,拷貝結(jié)束后,兩個對象雖然存的值是相同的,但是

內(nèi)存地址不一樣,兩個對象也互不影響,互不干涉。

copy和Strong的區(qū)別:copy是創(chuàng)建一個新對象,Strong是創(chuàng)建一個指針。

49,SEL 和 IMP

SEL: 其實是對方法的一種包裝,將方法包裝成一個SEL類型的數(shù)據(jù),去尋找對應(yīng)的方法地址,找到方法地址后

就可以調(diào)用方法。這些都是運行時特性,發(fā)消息就是發(fā)送SEL,然后根據(jù)SEL找到地址,調(diào)用方法。

IMP: 是”implementation”的縮寫,它是objetive-C 方法 (method)實現(xiàn)代碼塊的地址,類似函數(shù)

指針,通過它可以 直接訪問任意一個方法。免去發(fā)送消息的代價。

50, self 和 super

在動態(tài)方法中,self代表著"對象"

在靜態(tài)方法中,self代表著"類"

萬變不離其宗,記住一句話就行了:

self代表著當(dāng)前方法的調(diào)用者self 和 super 是oc提供的 兩個保留字, 但有根本區(qū)別,self是類的隱藏的

參數(shù)變量,指向當(dāng)前調(diào)用方法的對象(類也是對象,類對象)

另一個隱藏參數(shù)是_cmd,代表當(dāng)前類方法的selector。

super并不是隱藏的參數(shù),它只是一個"編譯器指示符"

super 就是個障眼法 發(fā),編譯器符號, 它可以替換成 [self class],只不過 方法是從 self 的

超類開始尋找。

51, 長連接 和 短連接

長連接:(長連接在沒有數(shù)據(jù)通信時,定時發(fā)送數(shù)據(jù)包(心跳),以維持連接狀態(tài))

連接→數(shù)據(jù)傳輸→保持連接(心跳)→數(shù)據(jù)傳輸→保持連接(心跳)→……→關(guān)閉連接;

長連接:連接服務(wù)器就不斷開

短連接:(短連接在沒有數(shù)據(jù)傳輸時直接關(guān)閉就行了)

連接→數(shù)據(jù)傳輸→關(guān)閉連接;

短連接:連接上服務(wù)器,獲取完數(shù)據(jù),就立即斷開。

52, HTTP 基本狀態(tài)碼

200 OK

請求已成功,請求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回。

300 Multiple Choices

被請求的資源有一系列可供選擇的回饋信息,每個都有自己特定的地址和瀏覽器驅(qū)動的商議信息。用戶或瀏覽器能夠自行選擇一個首選的地址進(jìn)行重定向。

400 Bad Request

由于包含語法錯誤,當(dāng)前請求無法被服務(wù)器理解。除非進(jìn)行修改,否則客戶端不應(yīng)該重復(fù)提交這個請求。

404 Not Found

請求失敗,請求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn)。沒有信息能夠告訴用戶這個狀況到底是暫時的還是永久的。假如服務(wù)器知道情況的話,應(yīng)當(dāng)使用410狀態(tài)碼來告知舊資源因為某些內(nèi)部的配置機制問題,已經(jīng)永久的不可用,而且沒有任何可以跳轉(zhuǎn)的地址。404這個狀態(tài)碼被廣泛應(yīng)用于當(dāng)服務(wù)器不想揭示到底為何請求被拒絕或者沒有其他適合的響應(yīng)可用的情況下。

408 Request Timeout

請求超時。客戶端沒有在服務(wù)器預(yù)備等待的時間內(nèi)完成一個請求的發(fā)送??蛻舳丝梢噪S時再次提交這一請求而無需進(jìn)行任何更改。

500 Internal Server Error

服務(wù)器遇到了一個未曾預(yù)料的狀況,導(dǎo)致了它無法完成對請求的處理。一般來說,這個問題都會在服務(wù)器的程序碼出錯時出現(xiàn)。

53, TCP 和 UDP

TCP:

- 建立連接,形成傳輸數(shù)據(jù)的通道

- 在連接中進(jìn)行大數(shù)據(jù)傳輸(數(shù)據(jù)大小受限制)

- 通過三次握手完成連接,是可靠協(xié)議

- 必須建立連接,效率比UDP低

UDP:

- 只管發(fā)送,不管接受

- 將數(shù)據(jù)以及源和目的封裝成數(shù)據(jù)包中,不需要建立連接、

- 每個數(shù)據(jù)報的大小限制在64K之內(nèi)

- 不可靠協(xié)議

- 速度快

54, 三次握手和四次斷開

三次握手:

你在嗎-我在的-我問你個事情

四次斷開握手

我這個問題問完了--你問完了嗎---可以下線了嗎---我真的問完了拜拜

55, 設(shè)置按鈕按下時候會發(fā)光

button.showsTouchWhenHighlighted=YES;

56,怎么把tableview里Cell的小對勾顏色改成別的顏色?

_mTableView.tintColor = [UIColor redColor];

57, 怎么調(diào)整Cell 的 separaLine的位置?**

_myTableView.separatorInset = UIEdgeInsetsMake(0, 100, 0, 0);

58, ScrollView莫名其妙不能在viewController劃到頂怎么辦?

self.automaticallyAdjustsScrollViewInsets = NO;

59, 設(shè)置TableView不顯示沒內(nèi)容的Cell。

self.tableView.tableFooterView = [[UIView alloc]init]

60,復(fù)制字符串到iOS剪貼板

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];

pasteboard.string = self.label.text;

61,宏定義多行使用方法

例子:( 只需要每行加個 \ 就行了)

#define YKCodingScanData \

-(void)setValue:(id)value forUndefinedKey:(NSString *)key{} \

- (instancetype)initWithScanJson:(NSDictionary *)dict{ \

if (self = [super init]) { \

[self setValuesForKeysWithDictionary:dict]; \

} \

return self; \

} \

62,去掉cell點擊后背景變色

[tableView deselectRowAtIndexPath:indexPath animated:NO];

如果發(fā)現(xiàn)在tableView的didSelect中present控制器彈出有些慢也可以試試這個方法

63,線程租調(diào)度事例

// 群組-統(tǒng)一監(jiān)控一組任務(wù)

dispatch_group_t group = dispatch_group_create();

dispatch_queue_t q = dispatch_get_global_queue(0, 0);

// 添加任務(wù)

// group 負(fù)責(zé)監(jiān)控任務(wù),queue 負(fù)責(zé)調(diào)度任務(wù)

dispatch_group_async(group, q, ^{

[NSThread sleepForTimeInterval:1.0];

NSLog(@"任務(wù)1 %@", [NSThread currentThread]);

});

dispatch_group_async(group, q, ^{

NSLog(@"任務(wù)2 %@", [NSThread currentThread]);

});

dispatch_group_async(group, q, ^{

NSLog(@"任務(wù)3 %@", [NSThread currentThread]);

});

// 監(jiān)聽所有任務(wù)完成 - 等到 group 中的所有任務(wù)執(zhí)行完畢后,"由隊列調(diào)度 block 中的任務(wù)異步執(zhí)行!"

dispatch_group_notify(group, dispatch_get_main_queue(), ^{

// 修改為主隊列,后臺批量下載,結(jié)束后,主線程統(tǒng)一更新UI

NSLog(@"OK %@", [NSThread currentThread]);

});

NSLog(@"come here");

64、視圖坐標(biāo)轉(zhuǎn)換

// 將像素point由point所在視圖轉(zhuǎn)換到目標(biāo)視圖view中,返回在目標(biāo)視圖view中的像素值

- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;

// 將像素point從view中轉(zhuǎn)換到當(dāng)前視圖中,返回在當(dāng)前視圖中的像素值

- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view;

// 將rect由rect所在視圖轉(zhuǎn)換到目標(biāo)視圖view中,返回在目標(biāo)視圖view中的rect

- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view;

// 將rect從view中轉(zhuǎn)換到當(dāng)前視圖中,返回在當(dāng)前視圖中的rect

- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view;

*例把UITableViewCell中的subview(btn)的frame轉(zhuǎn)換到

controllerA中

// controllerA 中有一個UITableView, UITableView里有多行UITableVieCell,cell上放有一個button

// 在controllerA中實現(xiàn):

CGRect rc = [cell convertRect:cell.btn.frame toView:self.view];

CGRect rc = [self.view convertRect:cell.btn.frame fromView:cell];

// 此rc為btn在controllerA中的rect

或當(dāng)已知btn時:

CGRect rc = [btn.superview convertRect:btn.frame toView:self.view];

CGRect rc = [self.view convertRect:btn.frame fromView:btn.superview];

65、設(shè)置animation動畫終了,不返回初始狀態(tài)

animation.removedOnCompletion = NO;

animation.fillMode = kCAFillModeForwards;

66、UIViewAnimationOptions類型

常規(guī)動畫屬性設(shè)置(可以同時選擇多個進(jìn)行設(shè)置)

UIViewAnimationOptionLayoutSubviews:動畫過程中保證子視圖跟隨運動。

UIViewAnimationOptionAllowUserInteraction:動畫過程中允許用戶交互。

UIViewAnimationOptionBeginFromCurrentState:所有視圖從當(dāng)前狀態(tài)開始運行。

UIViewAnimationOptionRepeat:重復(fù)運行動畫。

UIViewAnimationOptionAutoreverse :動畫運行到結(jié)束點后仍然以動畫方式回到初始點。

UIViewAnimationOptionOverrideInheritedDuration:忽略嵌套動畫時間設(shè)置。

UIViewAnimationOptionOverrideInheritedCurve:忽略嵌套動畫速度設(shè)置。

UIViewAnimationOptionAllowAnimatedContent:動畫過程中重繪視圖(注意僅僅適用于轉(zhuǎn)場動畫)。

UIViewAnimationOptionShowHideTransitionViews:視圖切換時直接隱藏舊視圖、顯示新視圖,而不是將舊視圖從父視圖移除(僅僅適用于轉(zhuǎn)場動畫)UIViewAnimationOptionOverrideInheritedOptions :不繼承父動畫設(shè)置或動畫類型。

2.動畫速度控制(可從其中選擇一個設(shè)置)

UIViewAnimationOptionCurveEaseInOut:動畫先緩慢,然后逐漸加速。

UIViewAnimationOptionCurveEaseIn :動畫逐漸變慢。

UIViewAnimationOptionCurveEaseOut:動畫逐漸加速。

UIViewAnimationOptionCurveLinear :動畫勻速執(zhí)行,默認(rèn)值。

3.轉(zhuǎn)場類型(僅適用于轉(zhuǎn)場動畫設(shè)置,可以從中選擇一個進(jìn)行設(shè)置,基本動畫、關(guān)鍵幀動畫不需要設(shè)置)

UIViewAnimationOptionTransitionNone:沒有轉(zhuǎn)場動畫效果。

UIViewAnimationOptionTransitionFlipFromLeft :從左側(cè)翻轉(zhuǎn)效果。

UIViewAnimationOptionTransitionFlipFromRight:從右側(cè)翻轉(zhuǎn)效果。

UIViewAnimationOptionTransitionCurlUp:向后翻頁的動畫過渡效果。

UIViewAnimationOptionTransitionCurlDown :向前翻頁的動畫過渡效果。

UIViewAnimationOptionTransitionCrossDissolve:舊視圖溶解消失顯示下一個新視圖的效果。

UIViewAnimationOptionTransitionFlipFromTop :從上方翻轉(zhuǎn)效果。

UIViewAnimationOptionTransitionFlipFromBottom:從底部翻轉(zhuǎn)效果。

67、獲取當(dāng)前View所在的控制器

#import "UIView+CurrentController.h"

@implementation UIView (CurrentController)

/** 獲取當(dāng)前View所在的控制器*/

-(UIViewController *)getCurrentViewController{

UIResponder *next = [self nextResponder];

do {

if ([next isKindOfClass:[UIViewController class]]) {

return (UIViewController *)next;

}

next = [next nextResponder];

} while (next != nil);

return nil;

}

68、iOS橫向滾動的scrollView和系統(tǒng)pop手勢返回沖突的解決辦法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

{

// 首先判斷otherGestureRecognizer是不是系統(tǒng)pop手勢

if ([otherGestureRecognizer.view isKindOfClass:NSClassFromString(@"UILayoutContainerView")]) {

// 再判斷系統(tǒng)手勢的state是began還是fail,同時判斷scrollView的位置是不是正好在最左邊

if (otherGestureRecognizer.state == UIGestureRecognizerStateBegan && self.contentOffset.x == 0) {

return YES;

}

}

return NO;

}

69、設(shè)置狀態(tài)欄方向位置

修改狀態(tài)欄方向,

[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;

枚舉值說明:

UIDeviceOrientationPortraitUpsideDown, //設(shè)備直立,home按鈕在上

UIDeviceOrientationLandscapeLeft, //設(shè)備橫置,home按鈕在右

UIDeviceOrientationLandscapeRight, //設(shè)備橫置, home按鈕在左

UIDeviceOrientationFaceUp, //設(shè)備平放,屏幕朝上

UIDeviceOrientationFaceDown //設(shè)備平放,屏幕朝下

再實現(xiàn)這個代理方法就行了

- (BOOL)shouldAutorotate

{

return NO; //必須返回no, 才能強制手動旋轉(zhuǎn)

}

69、修改 UICollectionViewCell 之間的間距

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section

{

return UIEdgeInsetsMake(10, 10, 10, 10);

}

70,時間戳轉(zhuǎn)換成標(biāo)準(zhǔn)時間

-(NSString *)TimeStamp:(NSString *)strTime

{

//因為時差問題要加8小時 == 28800 sec

NSTimeInterval time=[strTime doubleValue]+28800;

NSDate *detaildate=[NSDate dateWithTimeIntervalSince1970:time];

//實例化一個NSDateFormatter對象

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

//設(shè)定時間格式,這里可以設(shè)置成自己需要的格式

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSString *currentDateStr = [dateFormatter stringFromDate: detaildate];

return currentDateStr;

}

71,CocoaPods 安裝不上怎么辦

終端進(jìn)入 repos目錄

cd ~/.cocoapods/repos

新建一個文件夾master

然后下載 https://coding.net/u/CocoaPods/p/Specs/git

到master下

72,快速創(chuàng)建Block

輸入 :xcode中輸入 : inlineblock

73,Git 關(guān)聯(lián)倉庫 ,和基本配置

-------Git global setup-------

git config --global user.name "張大森"

git config --global user.email "zhangdasen@126.com"

-------Create a new repository-------

git clone git@gitlab.testAddress.com:test/QRZxing.git

cd QRZxing

touch README.mdgit

add README.mdgit commit -m "add README"

git push -u origin master

-------Existing folder or Git repository-------

cd existing_folder

git init

git remote add origin git@gitlab.testAddress.com:test/QRZxing.git

git add .

git commit

git push -u origin master

74,Git 命令大全

75,編譯器優(yōu)化級別

GCC_OPTIMIZATION_LEVEL

None: 不做優(yōu)化使用這個設(shè)置,編譯器的目標(biāo)是減少編譯成本,使調(diào)試產(chǎn)生預(yù)期的結(jié)果。

Fast:優(yōu)化編譯將為大函數(shù)占用更多的時間和內(nèi)存使用這個設(shè)置,編譯器將嘗試減少代碼的大小和執(zhí)行時間,不進(jìn)行任何優(yōu)化,需要大量編譯時間。

Faster:編譯器執(zhí)行幾乎所有支持的優(yōu)化,它不考慮空間和速度之間的平衡與“Fast”設(shè)置相比,該設(shè)置會增加編譯時間和生成代碼的性能。編譯器不進(jìn)行循環(huán)展開、內(nèi)聯(lián)函數(shù)和寄存器變量的重命名。

Fastest:開啟“Faster”支持的所有的優(yōu)化,同時也開啟內(nèi)聯(lián)函數(shù)和寄存器變量的重命名選項

Fastest,smallest:優(yōu)化代碼大小這個設(shè)置啟用“Faster”所有的優(yōu)化,一般不增加代碼大小,它還執(zhí)行旨在減小代碼大小的進(jìn)一步優(yōu)化。

76,獲取本機DNS服務(wù)器,根據(jù)域名獲取IP

/// 獲取本機DNS服務(wù)器

- (NSString *)outPutDNSServers

{

res_state res = malloc(sizeof(struct __res_state));

int result = res_ninit(res);

NSMutableArray *dnsArray = @[].mutableCopy;

if ( result == 0 )

{

for ( int i = 0; i < res->nscount; i++ )

{

NSString *s = [NSString stringWithUTF8String : inet_ntoa(res->nsaddr_list[i].sin_addr)];

[dnsArray addObject:s];

}

}

else{

NSLog(@"%@",@" res_init result != 0");

}

res_nclose(res);

return dnsArray.firstObject;

}

/// 根據(jù)域名獲取IP地址

- (NSString*)getIPWithHostName:(const NSString*)hostName

{

const char *hostN= [hostName UTF8String];

// 記錄主機的信息,包括主機名、別名、地址類型、地址長度和地址列表 結(jié)構(gòu)體

struct hostent *phot;

@try {

// 返回對應(yīng)于給定主機名的包含主機名字和地址信息的hostent結(jié)構(gòu)指針

phot = gethostbyname(hostN);

struct in_addr ip_addr;

memcpy(&ip_addr, phot->h_addr_list[0], 4);

char ip[20] = {0};

inet_ntop(AF_INET, &ip_addr, ip, sizeof(ip));

NSString* strIPAddress = [NSString stringWithUTF8String:ip];

return strIPAddress;

}

@catch (NSException *exception) {

return nil;

}

}

77,獲取當(dāng)前wifi連接信息

- (void)viewDidLoad {

[super viewDidLoad];

id info = nil;

NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();

for (NSString *ifnam in ifs) {

info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);

NSString *str = info[@"SSID"];

NSString *str2 = info[@"BSSID"];

NSString *str3 = [[ NSString alloc] initWithData:info[@"SSIDDATA"] encoding:NSUTF8StringEncoding];

NSLog(@"%@ %@ %@",str,str2,str3);

}

以上整理只為自己和大家方便查看,iOS中小技巧和黑科技數(shù)不盡

如果大家有不錯的代碼和技巧,也可留言或私信我,然后加上。

待續(xù)。。。。。。

會繼續(xù)更新的! 😇

總結(jié)

以上是生活随笔為你收集整理的dataframe 控对象_iOS知识 - 常用小技巧大杂烩的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

九九热精品视频在线播放 | 中文字幕在线视频一区 | 国产一区不卡在线 | 一级片在线 | 亚州精品天堂中文字幕 | 最近免费在线观看 | 在线免费试看 | 在线免费高清视频 | 中文字幕在线观看不卡 | 日本韩国欧美在线观看 | 日本久久久精品视频 | 中文字幕视频观看 | 综合网av| 久久国产精品99久久久久 | 嫩模bbw搡bbbb搡bbbb | 在线视频中文字幕一区 | 激情小说 五月 | 国产91九色视频 | 国产日韩精品一区二区三区 | 日韩有码中文字幕在线 | 国产一区在线看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 亚洲综合成人婷婷小说 | 欧美99热 | 嫩草av影院 | 超碰资源在线 | 激情欧美丁香 | 久久久久国产精品免费 | 欧美日韩视频网站 | 国产视频一二三 | 一级欧美日韩 | 久草视频在线免费播放 | www色片| 亚洲黄色免费网站 | 久久99精品国产99久久 | 成人黄色片免费看 | 久香蕉| 免费观看国产视频 | 亚洲 欧美 日韩 综合 | 国产精品成人久久久久 | 97成人精品区在线播放 | 免费aa大片 | 四虎www com | 美女国内精品自产拍在线播放 | 综合色中文 | 色爱区综合激月婷婷 | 色婷婷综合在线 | 国产精品久久久久久久免费大片 | 91在线欧美 | 亚洲国产中文字幕在线观看 | 日韩在线一二三区 | 中文字幕亚洲字幕 | 天天操天天操天天操天天操天天操 | 1024手机在线看 | 精品欧美一区二区在线观看 | 亚洲精品永久免费视频 | 成人黄色在线观看视频 | 成人a v视频| 日韩激情在线视频 | 毛片网站免费在线观看 | 色噜噜在线观看视频 | 丁香五婷 | 亚洲传媒在线 | 亚洲国产免费看 | 日韩欧美精品在线观看视频 | 国产成人免费精品 | 成人黄色视| 国产一区二区精品 | 骄小bbw搡bbbb揉bbbb| 五月天婷婷在线视频 | 狠狠色丁香久久婷婷综合_中 | 国产精品亚洲人在线观看 | 一区二区三区免费播放 | 国产美女免费 | 国产伦理一区 | 久章草在线 | 一区二区中文字幕在线 | 天天射天天爽 | 国产精品高清一区二区三区 | 婷婷丁香色综合狠狠色 | 日日躁你夜夜躁你av蜜 | 久久久www免费电影网 | 国产麻豆视频 | 日韩激情第一页 | 国产成人久 | 青春草视频 | 日韩成人免费在线电影 | 色视频在线观看 | 91视频久久久久 | 亚洲另类视频在线观看 | 青青久视频 | 美女国产网站 | 免费在线观看av不卡 | 黄色小网站在线 | 国产精品一区二区三区视频免费 | 午夜精品在线看 | 欧美日韩xxxxx | 一级特黄aaa大片在线观看 | 国产精品免费观看视频 | 日韩欧美精品一区二区三区经典 | 91精品视频一区二区三区 | 免费中文字幕在线观看 | 日韩大陆欧美高清视频区 | 91九色porny在线 | 精品国产伦一区二区三区 | 色婷婷激婷婷情综天天 | 在线久草视频 | 国产一区福利在线 | 国产黄免费 | 亚洲午夜不卡 | 黄色一集片 | 五月婷婷中文网 | 国产日韩精品欧美 | 国产高清在线 | 亚洲精品动漫成人3d无尽在线 | 国产精品免费久久久久久久久久中文 | 国产精品综合久久久久 | 国产在线视频一区 | 国产中文字幕视频在线观看 | 天天天干夜夜夜操 | 久久视频这里有久久精品视频11 | 久久免费视频1 | 91九色蝌蚪| 97国产精品免费 | 中文在线最新版天堂 | 成人 国产 在线 | 一本一本久久a久久精品综合妖精 | 中文字幕在线观看一区二区三区 | 日韩天天干 | 国产91成人 | 日韩久久午夜一级啪啪 | 国产精品久久久久亚洲影视 | 国产精品久久久久永久免费看 | 免费视频国产 | 久草在线视频首页 | 免费看的黄色小视频 | 在线视频 成人 | 日韩r级电影在线观看 | 中文字幕人成一区 | 狠狠插天天干 | 婷婷精品国产一区二区三区日韩 | 四虎国产免费 | 日韩免费看视频 | 欧美日韩伦理一区 | 亚洲成人精品影院 | 中文字幕一区二区三区在线观看 | 午夜少妇一区二区三区 | 久久婷婷五月综合色丁香 | 在线影院av| 四虎影视精品永久在线观看 | 欧美一区中文字幕 | 18女毛片 | 国产成人精品综合久久久 | 国产精品九九九 | 色综合 久久精品 | 色www精品视频在线观看 | 欧美一级小视频 | 蜜臀久久99精品久久久无需会员 | 精品久久久国产 | 天天操天天添 | 在线观看一区二区视频 | 亚洲欧洲成人 | 国产成人一区二 | 久久国色夜色精品国产 | 国产在线精品一区二区三区 | 亚州国产精品视频 | 色五月激情五月 | 中文在线亚洲 | 午夜久久影视 | 黄色免费高清视频 | 成人免费共享视频 | 天天射综合网站 | 国产资源在线视频 | 人人讲| 久久伊人五月天 | 午夜久操 | 亚洲精品在线免费看 | 中文字幕观看在线 | 色九九在线 | 国产探花视频在线播放 | 国内综合精品午夜久久资源 | 欧美日韩视频一区二区 | 亚洲在线色 | 久久久久久久久久免费视频 | 免费黄色在线播放 | 天天在线免费视频 | 天天插天天狠 | 天天翘av | 夜夜爽天天爽 | 中文字幕视频网 | 中文字幕人成不卡一区 | 亚洲综合色站 | 区一区二在线 | 免费裸体视频网 | 免费av大全| 色综合天天视频在线观看 | 992tv人人网tv亚洲精品 | 成人小电影在线看 | 日韩欧美一区二区三区视频 | 亚洲激情六月 | 97超碰国产在线 | 97精品国自产拍在线观看 | 国产精品涩涩屋www在线观看 | 欧美乱大交 | 人人艹视频 | 在线观看色视频 | 国产日韩精品一区二区三区 | 国产一级大片免费看 | 2023天天干| 黄色电影网站在线观看 | 香蕉视频在线观看免费 | 国产亚洲精品久久久久久 | 人人超碰人人 | 久久精品高清视频 | 国产高清视频在线免费观看 | 一区二区三区免费网站 | 亚洲欧美日本一区二区三区 | 免费在线观看日韩视频 | 天天夜操| 久久久久久美女 | 亚洲精品免费观看 | 香蕉视频国产在线观看 | 一区二区成人国产精品 | 亚洲天天做 | 伊人婷婷 | 五月开心六月伊人色婷婷 | 噜噜色官网| 久影院| 男女男视频 | 免费看的黄色 | 九九免费精品视频 | 波多野结衣视频一区二区 | 欧美了一区在线观看 | 美女久久视频 | 黄色国产区 | 6080yy精品一区二区三区 | 日韩一区视频在线 | 午夜免费福利视频 | 国产黄免费看 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 制服丝袜成人在线 | 国产视频不卡 | 曰韩精品 | 少妇bbb搡bbbb搡bbbb′ | 色网站在线看 | 色婷婷一区 | 国产视频观看 | 91精品黄色 | 久久99国产精品免费网站 | 国产大片黄色 | 深夜成人av | 美女露久久 | 香蕉久久久久 | 麻豆国产露脸在线观看 | 成 人 黄 色 视频 免费观看 | 国产精品免费一区二区 | 美女视频久久久 | 天天色天天射天天干 | 激情伊人| 黄色免费大全 | 黄色亚洲片 | 狠狠躁日日躁狂躁夜夜躁 | 99视频精品在线 | a天堂免费 | 黄色aa久久 | 91热视频 | 久久成年人网站 | 国产男女免费完整视频 | 黄色av免费看 | 亚洲精品五月 | 久久久影院一区二区三区 | 欧美日韩国产精品一区二区亚洲 | 久久久激情网 | av免费高清观看 | 日日干夜夜干 | 国产精品久久嫩一区二区免费 | 在线亚洲日本 | 欧美大片在线观看一区 | 精品伊人久久久 | 韩国一区视频 | 天堂在线免费视频 | 久久久久网址 | 久久久国产精品成人免费 | 2000xxx影视| 日韩精品你懂的 | 国产日韩精品一区二区三区在线 | 婷婷www | 91九色在线视频 | 98久久| 成人免费在线视频观看 | 欧美精品乱码久久久久久按摩 | 午夜国产福利视频 | 日韩中文在线播放 | 免费一级日韩欧美性大片 | 久久精品三级 | 国产91对白在线 | 天天色棕合合合合合合 | 最近中文字幕免费大全 | 久久免费中文视频 | 99热精品国产 | 日韩高清久久 | 日韩精品久久久久久 | 国产精品原创在线 | 欧美午夜久久 | 亚州成人av在线 | 欧美日韩国产网站 | 欧美成人aa | 亚洲在线视频播放 | 一级免费观看 | 不卡av免费在线观看 | 97电影网手机版 | 不卡的av中文字幕 | 久久最新网址 | 婷婷99| 全黄色一级片 | 久久国产精品小视频 | 国产视频在线观看一区 | 国产精品欧美久久 | 天天操天天干天天摸 | 久久久久国产一区二区三区 | 成年人视频在线免费 | 国内久久| 婷婷在线免费观看 | 国产精品久久久久高潮 | 久久久久久国产精品免费 | 在线精品视频在线观看高清 | 亚州精品成人 | 亚洲好视频 | 日韩在线高清视频 | 天天操夜夜操天天射 | 五月婷婷丁香综合 | 香蕉网站在线观看 | 五月婷婷中文字幕 | 天天色天天综合网 | 91色在线观看 | 青草草在线视频 | 欧美久久久久久久久中文字幕 | 久久免费福利 | 欧美成人手机版 | 99色| 国产成人精品av | av福利在线| 国产精品视频app | 中文字幕一区二区三 | 婷婷色综| 欧美精品在线免费 | 九热在线| 久青草视频在线观看 | 99热这里只有精品国产首页 | 国产美女视频免费观看的网站 | 日黄网站 | 精品久久久久久综合 | 六月色丁| 久久精品亚洲精品国产欧美 | 国产精久久 | 精品国产1区二区 | 精品人人爽| 狠狠色噜噜狠狠 | 久久精品视频4 | 香蕉97视频观看在线观看 | 中文字幕色播 | 国产精品伦一区二区三区视频 | 丝袜美腿一区 | 99精品久久久久久久 | 超碰人人射 | 婷婷色综合网 | 中文字幕在线免费97 | 网站免费黄 | 91在线www| 日韩 国产 | 国产精品成人一区二区 | 开心激情婷婷 | 免费观看mv大片高清 | 国产一二区视频 | 一本一本久久a久久精品综合妖精 | 久草综合在线观看 | 97色噜噜 | 国产一级免费片 | 欧美二区在线播放 | 欧美成人在线免费观看 | 国产精品一区二区三区在线看 | 人人澡视频 | 超碰公开在线 | 五月黄色 | 日韩精品视 | 99久久久国产精品 | 国内精品久久久久久久久久清纯 | 日韩中文字幕免费在线播放 | av久久在线 | 二区三区在线视频 | 日韩欧美精品一区二区三区经典 | 日韩天天干 | 曰韩精品 | 日韩欧美视频在线免费观看 | 亚洲国产手机在线 | 久久综合影院 | 欧美日韩高清一区二区 | 天天射天天艹 | 久久黄色成人 | 97看片| 人人澡视频 | 免费福利在线视频 | 97高清视频 | 欧美日韩中 | 激情综合电影网 | 国际精品久久久久 | 精品影院一区二区久久久 | av千婊在线免费观看 | 亚洲 欧美日韩 国产 中文 | 91网免费看 | www.福利视频 | 高清av免费一区中文字幕 | 久久伊人综合 | 精品国产欧美一区二区三区不卡 | 黄色特级一级片 | 97色视频在线 | 久久激情视频 久久 | 99精品乱码国产在线观看 | 国产无遮挡又黄又爽在线观看 | 日韩精品资源 | 色偷偷888欧美精品久久久 | 成人午夜电影网 | 国产日韩欧美在线一区 | 五月婷久久 | 中文字幕精品一区二区三区电影 | 天天综合导航 | 国产亚洲一区二区在线观看 | 亚洲精品乱码久久久久久蜜桃不爽 | 欧美性生活久久 | 久草视频网 | 国产精品久久久久免费观看 | 日韩在观看线 | 国产精品a久久 | 国产手机在线观看 | 青春草免费在线视频 | 97成人啪啪网 | avav99| av在线播放亚洲 | 久久激情影院 | 久久精品之 | 91麻豆精品国产 | 精品国产综合区久久久久久 | 亚洲激情在线观看 | 免费成人av在线看 | 西西大胆啪啪 | 天天综合入口 | 91丨九色丨首页 | 超碰97公开 | 99精品欧美一区二区蜜桃免费 | 日韩理论电影在线观看 | 国产精品激情 | 精品国产伦一区二区三区 | 亚洲国产中文在线观看 | 六月天综合网 | 久草在线高清视频 | 国产精品久久久久久久久久久久午夜 | 精品国产一区二区三区蜜臀 | 人人人爽 | 狠狠干狠狠艹 | 国产精品原创av片国产免费 | 中文字幕第一页在线播放 | 在线观看 国产 | 很黄很色很污的网站 | 国产剧情一区二区在线观看 | 人人干人人做 | 欧美日韩国产二区 | 性色视频在线 | 在线免费观看视频 | 日韩大片在线免费观看 | 五月天激情视频 | 国产精品视频永久免费播放 | 97视频在线看| 亚洲区另类春色综合小说 | 91av美女| av网址aaa| 成人一区二区在线观看 | 亚洲一区 影院 | 深夜精品福利 | www在线免费观看 | 国产日产精品一区二区三区四区 | www久久国产 | 国产一区二区在线免费视频 | 看av免费网站 | 91久久国产综合精品女同国语 | 成人久久视频 | 日韩在线视频免费播放 | 一本色道久久综合亚洲二区三区 | 91麻豆精品国产自产在线 | 久久综合一本 | 国产日产精品一区二区三区四区的观看方式 | 91精品夜夜| 美女禁18| 国产精品久久久免费看 | 色天天| 99精品在线播放 | 国产97色在线 | 2018精品视频| 日韩高清精品免费观看 | 九色精品免费永久在线 | 色的网站在线观看 | 99精品毛片 | 精品一区免费 | 国产精品免费一区二区三区在线观看 | 日韩电影一区二区三区在线观看 | 国产五月色婷婷六月丁香视频 | av福利电影| 亚洲欧美日韩国产精品一区午夜 | 国产午夜av| 国产黄色高清 | 国产精品一区二区久久 | 久久人人97超碰精品888 | 日韩精品一区二区三区不卡 | 欧美国产日韩激情 | 中文字幕久久精品一区 | 91看片淫黄大片在线播放 | 在线亚洲人成电影网站色www | .国产精品成人自产拍在线观看6 | 亚洲一区二区三区四区在线视频 | 激情网站五月天 | 91综合色| 国产亚洲精品免费 | a亚洲视频 | 久久久免费毛片 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 99精品国产免费久久久久久下载 | 精品国产乱码久久久久久浪潮 | 欧洲激情综合 | 久久精品久久精品久久39 | 久久综合精品一区 | 国产精品久久久久久久久久久不卡 | 欧美经典久久 | 91成人看片 | 最新中文字幕在线资源 | 日本三级不卡视频 | 97理论片 | 伊人导航 | 日韩av看片 | 在线免费黄网站 | 在线看一区二区 | 91麻豆精品国产91久久久无限制版 | 中文字幕在线观看的网站 | 狠狠干天天色 | 亚洲 欧洲av | 在线电影 一区 | 欧美日韩一区二区三区免费视频 | 国产精品欧美久久久久三级 | 四虎成人精品永久免费av | 天天操天天操天天 | 最近更新的中文字幕 | 中文在线www | 欧美日韩中文字幕在线视频 | 在线草| 97精品国产97久久久久久免费 | 天堂网在线视频 | 亚洲综合欧美精品电影 | 黄色一级大片在线免费看产 | 在线观看视频 | se婷婷| 亚洲国产中文在线观看 | 久久综合免费 | 中字幕视频在线永久在线观看免费 | 精品一区二区三区久久久 | 五月天亚洲激情 | 97国产电影 | 99久久婷婷| 最近字幕在线观看第一季 | 欧美日韩综合在线观看 | 色99导航 | 青春草视频在线播放 | 欧美大jb | 亚洲国产日韩一区 | 国产精久久久久久久 | 国产在线观看你懂得 | 在线黄色毛片 | 99久久婷婷国产综合亚洲 | 欧美性受极品xxxx喷水 | 成人九九视频 | 在线观看亚洲国产 | 黄色小说18 | 亚洲欧洲国产视频 | 狠狠干夜夜爽 | 最新国产视频 | 99性视频| 在线观看av片 | 有码中文字幕在线观看 | 欧美日韩激情视频8区 | 亚洲91中文字幕无线码三区 | 日韩精品一区二区三区第95 | 亚洲成人资源网 | 亚洲情感电影大片 | 久久久久久久18 | 欧美一级片免费在线观看 | 国产精品美女久久久久久 | 九九视频免费观看视频精品 | 99久久精品国产一区 | 激情婷婷综合网 | 91麻豆精品国产91久久久无限制版 | 在线 影视 一区 | 午夜视频二区 | 精品视频999 | 高清av免费看 | 丁香电影小说免费视频观看 | 成人福利在线观看 | 精品视频资源站 | 国产九九九九九 | 久久久久久久久久久综合 | 成人免费观看在线视频 | 精品久久久久久久久久久久久久久久 | 97超碰国产精品女人人人爽 | 欧美日韩国产成人 | 久久免费视频4 | 波多野结衣电影一区二区三区 | 日韩在线国产 | 成人精品一区二区三区电影免费 | 国产精品免费久久久 | 免费看污黄网站 | av电影中文字幕 | 一区二区三区韩国免费中文网站 | 精品久久久国产 | 91天堂影院| 夜夜操狠狠操 | 中文字幕在线成人 | 亚洲精品视频在线 | 伊香蕉大综综综合久久啪 | 亚洲在线视频免费 | 深夜福利视频一区二区 | 911免费视频 | 国产精品不卡在线观看 | 天天曰天天射 | 欧美一区,二区 | 亚洲伊人av| 亚洲一级黄色av | 911久久香蕉国产线看观看 | 久久视频免费观看 | 亚洲日本在线一区 | 亚洲精品在线观看的 | 日韩视频一区二区三区在线播放免费观看 | 99热这里是精品 | 日韩免费在线 | 国产成人综合精品 | 我要色综合天天 | 日韩一区二区免费视频 | 国产一区国产精品 | 久久精品—区二区三区 | 亚洲精品h| 中文字幕第 | 在线中文字幕一区二区 | 欧美久久久久久久久久久久 | 在线观看麻豆av | 天天综合色 | 国产成在线观看免费视频 | 欧美成人tv| 99爱精品在线| 国产成人在线播放 | 亚洲1级片 | 午夜精品久久久久久久久久久 | 99久久精品国产免费看不卡 | 五月花丁香婷婷 | 最近中文字幕视频网 | 国产精品综合av一区二区国产馆 | 成人资源在线播放 | 片黄色毛片黄色毛片 | 国产欧美久久久精品影院 | 四虎影视8848aamm | 91亚色免费视频 | 国产 日韩 欧美 中文 在线播放 | 亚洲综合狠狠干 | 欧美日韩中文国产 | 久久污视频 | 亚洲成色| 97超碰人人看 | 国产无吗一区二区三区在线欢 | www狠狠| 玖草影院| 天天综合91| 成人av一区二区在线观看 | 欧美日韩一区二区三区不卡 | 午夜精品电影 | 国产一区二区在线免费播放 | 99精品热 | 亚洲 欧洲 国产 日本 综合 | 日韩成人精品一区二区三区 | 日韩欧美综合精品 | 色诱亚洲精品久久久久久 | 日韩videos高潮hd | 国产黄大片在线观看 | 精品国产99国产精品 | 成人中文字幕av | 久久久久99999| 日韩中文字幕在线不卡 | 激情xxxx| 香蕉影院在线 | 日韩中文字幕a | 国产精品99久久久久久小说 | 国产在线观看地址 | 国产精品永久在线观看 | 日韩中文久久 | 久久精品官网 | 五月天,com | 免费在线成人av | 欧美激情第十页 | a黄色片在线观看 | 久久久精品视频网站 | 日本精品va在线观看 | 色视频国产直接看 | 狠狠狠色丁香婷婷综合久久五月 | 亚洲国产视频网站 | 欧美精品乱码久久久久久按摩 | 久久五月婷婷丁香 | 久久免费视频这里只有精品 | 亚洲视频免费视频 | 久久久999精品视频 国产美女免费观看 | 九七人人干 | 在线91视频 | 成人久久影院 | 国产亚洲午夜高清国产拍精品 | 人人爽人人射 | 婷婷干五月 | 亚洲国产精品久久久久 | 久久久精品国产一区二区三区 | 狠狠色香婷婷久久亚洲精品 | 精品国产伦一区二区三区观看体验 | 欧美在线视频不卡 | 精品国产诱惑 | 一区二区三区四区精品 | 国产在线不卡视频 | a黄色大片 | 韩国av在线播放 | 亚洲一级片在线看 | 国产亚洲一级高清 | av激情五月 | 久精品一区 | 西西444www大胆无视频 | 91在线欧美 | 国产一区二区精品久久 | 91夫妻自拍 | 成人在线视频免费 | 国产黄色大片免费看 | 97超碰资源总站 | 香蕉在线观看视频 | 岛国精品一区二区 | 玖玖玖在线观看 | 一级a毛片高清视频 | 国产成人精品久久亚洲高清不卡 | 69久久久久久久 | 又爽又黄在线观看 | 久久精品三 | 九九免费观看视频 | 亚洲干 | 免费欧美高清视频 | 久久久久成人精品亚洲国产 | 天天舔天天射天天操 | 狠狠干干| 久久精品91久久久久久再现 | 一区二区三区在线观看免费 | 久操综合| 日韩一二三 | 伊人久久国产 | 81国产精品久久久久久久久久 | 久久天天拍 | 中文字幕欧美日韩va免费视频 | 香蕉网站在线观看 | 肉色欧美久久久久久久免费看 | 日本黄色免费网站 | 99久久日韩精品免费热麻豆美女 | 国产视频美女 | 99热在 | 日韩欧美视频免费看 | 精品视频99 | 能在线观看的日韩av | 精品二区久久 | 日韩高清av在线 | av黄色在线观看 | 黄av资源 | 欧美激情片在线观看 | 国产 日韩 在线 亚洲 字幕 中文 | 欧美色就是色 | 2020天天干夜夜爽 | 午夜精品一区二区三区在线视频 | 国产精品伦一区二区三区视频 | 国产又粗又猛又黄视频 | 免费日韩精品 | 91在线视频观看免费 | 91插插视频 | 国产黄免费看 | 久久免费片 | 色婷婷激情综合 | 天天操天天干天天插 | 国产精品www | 欧美精品xxx| 91中文在线视频 | 欧美精品免费在线 | 久久成人麻豆午夜电影 | 超碰公开在线观看 | 色综合久久五月 | 天天干天天操天天射 | 国产91aaa| 亚洲精品国产品国语在线 | 成人蜜桃视频 | 中文字幕欧美日韩va免费视频 | 天天摸天天舔 | 一区二区三区在线看 | 欧美在线91 | 精品久久久久久电影 | 日日日操操 | 久草在线观 | 最新午夜| 国产三级视频 | 国产精品免费在线播放 | 中文在线8资源库 | 欧美一级片在线观看视频 | 成人在线免费看视频 | 九色91在线视频 | 亚洲最新视频在线播放 | 在线观看视频亚洲 | 天天射天天搞 | 午夜精品久久久久久久99水蜜桃 | 亚洲视频每日更新 | 蜜臀av一区二区 | 亚洲高清国产视频 | 综合久久精品 | 久久久久久久99 | 国内精品久久久久久久久久久 | 天天干.com | 亚洲最大成人免费网站 | 国产vs久久 | 成人在线观看日韩 | 久久免费毛片视频 | 最新日韩在线 | 亚洲天堂毛片 | 久久6精品 | 色综合久久久久网 | 免费a v在线 | 97av在线 | 久草在线官网 | 天天草天天草 | 日韩av有码在线 | 久99视频| 黄色网址在线播放 | 精品国产一区在线观看 | 免费特级黄色片 | 伊人狠狠干 | 又黄又网站| 免费在线国产黄色 | 岛国av在线不卡 | 免费合欢视频成人app | 婷婷资源站 | 日韩免费播放 | 射射色| 日韩在线免费观看视频 | 国产精品乱码久久久久久1区2区 | 久久五月精品 | 亚洲精品成人av在线 | 久草久热 | 亚洲成人资源在线观看 | 国产裸体无遮挡 | 久久久.com| a一片一级| av黄网站 | 美女在线黄 | 中文字幕综合在线 | 伊人成人精品 | av在观看 | 日日操操| 91免费高清 | 一区二区三区 中文字幕 | 色综合www| 91精品一 | 国产一区av在线 | 狠狠干网站 | 国产91精品高清一区二区三区 | 91传媒免费在线观看 | 久久精品久久精品久久 | 日韩在线免费高清视频 | 日韩理论片中文字幕 | 国产一级免费片 | 国产群p视频 | 欧美日韩国产一二 | 久久亚洲欧美日韩精品专区 | 国产 一区二区三区 在线 | 欧美日韩中文在线视频 | 99精品免费视频 | 免费在线观看av片 | 人人插人人玩 | 丁香六月五月婷婷 | 久久久久久国产精品999 | 精品久久91 | 精品久久久久久久久久国产 | 激情综合色播五月 | 亚洲天堂在线观看完整版 | 免费进去里的视频 | 国产精品久久婷婷六月丁香 | 伊人伊成久久人综合网站 | 国产精品久久久久久久99 | 亚洲桃花综合 | 亚洲一级久久 | 精品国产一区二区三区不卡 | 久久久久亚洲精品成人网小说 | 青青河边草手机免费 | 欧美天天射 | 三级a毛片 | 激情 一区二区 | 欧美在线99| 玖玖在线免费视频 | 国产黄a三级 | av免费网站观看 | 成人中文字幕av | 91porny九色91啦中文 | 久久成人在线视频 | 成人午夜毛片 | 精品久久一区二区三区 | 99视频在线观看免费 | www视频在线播放 | 1024手机基地在线观看 | 日韩视 | 手机看国产毛片 | 99久久久国产精品美女 | 99久久精品免费看国产一区二区三区 | 中文理论片 | 日韩一区二区三区观看 | 天天操天天能 | 亚洲国产片色 | 天天爽天天爽 | 国产精品女人网站 | 久久艹艹 | 偷拍精偷拍精品欧洲亚洲网站 | 免费视频 你懂的 | 一区二区三区日韩视频在线观看 | 五月婷婷激情综合网 | 国产手机在线观看 | 又黄又网站 | 精品国产伦一区二区三区观看说明 | 国产高清专区 | 日韩中文幕 | 992tv成人免费看片 | 国产很黄很色的视频 | 中文字幕在线观看91 | 国产探花在线看 | 黄色网址av | 久久国产精品99久久久久久丝袜 | 国产午夜精品免费一区二区三区视频 | 国产精品成人a免费观看 | 欧美极品少妇xxxx | 久久99久久久久久 | 91视频在线国产 | 日日日操操 | av免费在线看网站 | 在线免费观看黄色 | 中文字幕av在线免费 | 五月天综合色激情 | 美女免费黄网站 | 天天色天天色天天色 | 久久不卡电影 | 99精品视频在线观看视频 | 久久久久久欧美二区电影网 | 六月婷婷网 | 久久永久视频 | 美女视频久久黄 | 午夜久久网站 | 久久成人高清 | 亚洲最大激情中文字幕 | 欧美一级特黄aaaaaa大片在线观看 | 伊人五月天综合 | 欧美视频18 | 免费黄色av. | 欧美色插 | 色综合色综合久久综合频道88 | 99在线免费视频 | 免费av网站在线看 | 99视频+国产日韩欧美 | www.99久久.com| 久久99婷婷 | 国产黄色片久久 | a天堂在线看 | 日韩有色 | 国产成人精品亚洲日本在线观看 | 成年人免费看片网站 | 久久久精品国产一区二区三区 | 天天色天天干天天色 | 成人蜜桃网 | 久久精品高清视频 | 久久九九影院 | 日韩在线 一区二区 | 激情综合五月网 | 欧美精品在线一区二区 | 天天躁天天躁天天躁婷 | 成人精品亚洲 | 亚洲精品在线观看av | av网站手机在线观看 | 色网站在线看 | 久久精品国产99 | 91网在线观看 | 91桃色在线观看视频 | 国产精品白丝av | 国产资源网站 | 天天草天天 | 亚洲视频一区二区三区在线观看 | 久久久不卡影院 |