IOS 開發(fā)中所用神技

前言:

以下內(nèi)容是作者在實際開發(fā)中所總結(jié)的希柿,主要列舉了一些實用小技巧阐肤,也希望在實際開發(fā)中能夠幫到你缴罗。


  1. 設置控件的圓角:
myView.layer.cornerRadius = 6; 
myView.layer.masksToBounds = YES;
transform = CGAffineTransformRotate(manImageView.transform,M_PI/6.0);
manImageView.frame=CGRectMake(100,100, 120,100);
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
transform = CGAffineTransformScale(manImageView.transform,1.2,1.2);
transform=CGAffineTransformInvert(manImageView.transform);
  1. 設置控件的陰影:
myView.layer.shadowColor = [UIColor blackColor].CGColor;
myView.layer.shadowOffset = CGSizeMake(0, 0);
myView.layer.shadowOpacity = 1;
  1. 換行連接字符:
NSString *str = @"數(shù)不清的漫山花朵"\\
  "給這座大山添加了不少情趣";
NSLog(@"%@",str);
  1. 判斷一個字符串中是否包含另外一個字符串:
NSString *str1 = @"abcqwqwq";
NSString *str2 = @"abc";
NSLog(@"%@", [str1 rangeOfString:str2].length != 0 ? @"包含" : @"不包含");
  1. 獲取plist文件的數(shù)據(jù):
   NSString *path = [[NSBundle mainBundle]pathForResource:@"heros" ofType:@"plist"];
   NSArray *array = [NSArray arrayWithContentsOfFile:path];
  1. nil文件的獲取:
APPCell *cell = [[NSBundle mainBundle]loadNibNamed:@"" owner:nil options:nil].lastObject;
  1. 獲取屏幕點擊坐標:
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView:touch.view];
    NSLog(@"%@",NSStringFromCGPoint(point));
}
  1. 系統(tǒng)偏好存儲的方式:
//1. NSUserDefaults簡單實用:
// 創(chuàng)建偏好對象
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    // 存值
    [defaults setObject:@"daojiao" forKey:@"name"];
    // 同步
    [defaults synchronize];
    // 取值
    NSString *str = [defaults objectForKey:@"name"];
    NSLog(@"%@",str);
// 2. NSUserDefaults圖片存瓤雒ⅰ:
[[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation([UIImage imageNamed:@"Default-568h@2xiPhonePortraitiOS78_320x568pt" ]) forKey:@"image"];
NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
self.imageView.image = [UIImage imageWithData:imageData];
  1. 定時器:
//第一種:
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(say) userInfo:nil repeats:YES];
//第二種:
 CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(say)];
 [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
  1. 延時:
// 第一種:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{   
  });
// 第二種:
 [NSThread sleepForTimeInterval:2.0f];
// 第三種:
[self performSelector:self withObject:@selector(operation) afterDelay:1.0];
  1. 點擊視圖退出鍵盤:
第一種方式:
[textField resignFirstResponder];
第二種方式:
[self.view endEditing:YES];
  1. 將OC字符串轉(zhuǎn)換成C字符:
sql.UTF8String
  1. 結(jié)構(gòu)體循環(huán):
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    NSLog(@"第 %d 項內(nèi)容是 %@", (int)idx, obj);
    if ([@"王五" isEqualToString:obj]) *stop = YES;
}];
  1. 不使用HTTPS方法:
<key>NSAppTransportSecurity</key>
        <dict>
                <key>NSAllowsArbitraryLoads</key>
                <true/>
        </dict>
  1. 隨機數(shù):
int x = arc4random() % 100;
//生成指定范圍隨機數(shù)[1-6]
int num = ((arc4random() % 6) + 1);
  1. 添加動畫:
// 第一種:
[UIView animateWithDuration:2.0f animations:^{
         //.. insert code
     }];
// 第二種:
   [UIView beginAnimations:@"doflip" context:nil];
    //設置時常
    [UIView setAnimationDuration:2.0f];
    //設置動畫淡入淡出
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    //設置代理
    [UIView setAnimationDelegate:self];
    //設置翻轉(zhuǎn)方向
      [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
    //動畫結(jié)束
    [UIView commitAnimations];
  1. arc和非arc的轉(zhuǎn)換:
如果你的項目使用的非 ARC 模式肥惭,則為 ARC 模式的代碼文件加入 -fobjc-arc 標簽么伯。
如果你的項目使用的是 ARC 模式疟暖,則為非 ARC 模式的代碼文件加入 -fno-objc-arc 標簽。
  1. Json(反序列化):
NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
  1. URL中有特殊字符需要加百分號轉(zhuǎn)譯:
NSLog(@"%@",[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
// 取反
NSLog(@"%@",[str stringByRemovingPercentEncoding]);
  1. 局部刷新:
 // 刷新指定行 
 NSIndexPath *path = [NSIndexPath indexPathForRow:alertView.tag inSection:0];
 [self.tableview reloadRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationRight];
//如果不進行刷新會怎么樣田柔?(修改之后不會即時刷新俐巴,要等到重新對cell進行數(shù)據(jù)填充的時候才會刷新)
  1. 屏幕自動旋轉(zhuǎn):
self.imageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
  1. 獲取系統(tǒng)版本:
 [[UIDevice currentDevice].systemVersion doubleValue];
  1. 設置狀態(tài)背景色:
 // 第一種方式:
在info.plist文件中添加View controller-based status bar appearance  設為 NO
在AppDelegate.m 文件中的didFinishLaunchingWithOptionsfa方法中添加application.statusBarStyle = UIStatusBarStyleLightContent; 即可改變狀態(tài)欄背景色。
總結(jié):這種方法在ios9之前不會報錯凯楔,但ios9后會報錯窜骄,但不影響程序的正常運行,這是蘋果自身的bug摆屯。
//第二種方式:在重寫的UINavigationController控制器中添加一下代碼
-(UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}
總結(jié):暫時能夠解決問題邻遏,但目前不知解決的思路。
  1. 視圖位置交換:
  //把一個子視圖放到最下面
  [self.view sendSubviewToBack:view9]; 
//把一個子視圖放到最上面 
 [self.view bringSubviewToFront:view9];
[self.view insertSubview:view10 atIndex:6];  
//我們也可以指定插入在誰的下面虐骑,在view8下面准验,那就在最下面了  
[self.view insertSubview:view10 belowSubview:view8]; 
 //我們也可以指定插入在誰的上面,在view9上面廷没,那就在最上面了 
 [self.view insertSubview:view10 aboveSubview:view9];  
//我們也可以交換兩個視圖的位置糊饱,比如把5和7交換,也就是view8和view10
  1. 單擊手勢:
 UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapImageView:)];        
[cell addGestureRecognizer:singleTap];
  1. 設置導航欄主題:
// 通過navBar設置導航欄的所有屬性颠黎,比如背景另锋,字體大小...
 UINavigationBar *navBar = [UINavigationBar appearance];
  1. 獲取tabbar控制其中子控制器的個數(shù):
self.viewControllers.count;
  1. 字體設置:
attr[NSForegroundColorAttributeName ] = [UIColor whiteColor];
attr[NSFontAttributeName] = [UIFont systemFontOfSize:20];
[navBar setTitleTextAttributes:attr];
  1. 隱藏tabbar:
viewController.hidesBottomBarWhenPushed = YES;
  1. 禁用系統(tǒng)自帶側(cè)滑:
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
  1. UIWebView填充html自動適配:
[webView setScalesPageToFit:YES];
  1. 獲取設備類型:
 [UIDevice currentDevice].model;
  1. 按鈕存儲多個值(Runtime):
#import <objc/runtime.h>
//存值: 
objc_setAssociatedObject(btn, @"text", textf, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
//取值:
UITextField *t = objc_getAssociatedObject(button, @"text");
  1. 獲取UIStoryboard中的控制器:
UIStoryboard *b = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
TwoViewController *two = [b instantiateViewControllerWithIdentifier:@"daili"];
  1. 返回不帶狀態(tài)欄的Rect:
CGRect bounds = [[UIScreen mainScreen] applicationFrame];
  1. iOS各種機型的屏幕適配問題以iPhone6P為基準:
#define SYRealValue(value) ((value)/414.0f*[UIScreen mainScreen].bounds.size.width)
  1. 數(shù)組轉(zhuǎn)NSData:
NSArray *arr1 = [[NSArray alloc]initWithObjects:@"0",@"5",nil];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:arr1];
NSArray *arr2 = [NSKeyedUnarchiver unarchiveObjectWithData:data];
  1. 獲取項目路徑:
$(SRCROOT):代表了工程的相對路徑
$(PROJECT_NAME) :是相對工程名
  1. 獲取APP下載地址:
https://itunes.apple.com/cn/app/idxxxxxxx?mt=8
將xxxxxxx替換成自己app ID
  1. 正則表達式使用:
NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
return [identityCardPredicate evaluateWithObject:str];
regex:驗證的類型 (@"^(\\\\d{14}|\\\\d{17})(\\\\d|[xX])$") 
str:需要驗證的字符
  1. NSString 轉(zhuǎn) NSArray :
  NSString *result = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
  NSArray *jsonObject = [NSJSONSerialization JSONObjectWithData:[result dataUsingEncoding:NSUTF8StringEncoding];
options:0 error:NULL];
  1. 修改cell選中狀態(tài)的背景:
cell.selectedBackgroundView
http://blog.csdn.net/a6472953/article/details/7532212
  1. TextField有值沒值的判斷::
_button.hidden = !(range.location > 0) && !(string.length == 1);
  1. 手機振動:
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
  1. 取消navigationbar下面的黑線:
self.navigationBar.barStyle = UIBaselineAdjustmentNone;
  1. 簡單的二維動畫操作:
self.testView.transform = CGAffineTransformMakeRotation(10*i);      // 旋轉(zhuǎn)
 self.testView.transform = CGAffineTransformRotate(self.testView.transform, 1);  // 可以承接上次動作,去操作狭归。
 self.testView.transform = CGAffineTransformTranslate(self.testView.transform, 0, 0);
 self.testView.transform = CGAffineTransformMakeScale(i,i);  // 放大
self.testView.transform=CGAffineTransformScale(self.testView.transform, 1, 1);
 self.testView.transform = CGAffineTransformMakeTranslation(1,-100);   // 平移
  1. 幀動畫:
 self.imageView.animationImages = [NSArray arrayWithObjects:
                                      [UIImage imageNamed:@"1"]
                                      ,[UIImage imageNamed:@"2"]
                                      ,[UIImage imageNamed:@"3"]
                                      ,[UIImage imageNamed:@"4"]
                                      ,[UIImage imageNamed:@"5"]
                                      ,nil];
    self.imageView.animationDuration = 5.0;
    self.imageView.animationRepeatCount = 3;
    [self.imageView startAnimating];
  1. 獲取某個view所在的控制器:
-(UIViewController *)viewController {
  UIViewController *viewController = nil;
  UIResponder *next = self.nextResponder;
  while (next) {
    if ([next isKindOfClass:[UIViewController class]]) {
      viewController = (UIViewController *)next;
      break;
    }
    next = next.nextResponder;
  }
  return viewController;
}
  1. 如何將IOS.m文件編譯成C++:
// 打開 terminal 切換目錄到需要轉(zhuǎn)換的.m文件目錄下夭坪,輸入以下命令:
clang -rewrite-objc fileName.m
  1. 獲取當前界面的View:
UIView *view = [[UIApplication sharedApplication].windows lastObject];
  1. 如何從A應用跳轉(zhuǎn)到B應用::
 //1.簡單的跳轉(zhuǎn):
第一步:在B應用中配置URL Schemes
第二步:配置A應用訪問B應用的NSURL *url = [NSURL URLWithString:@"weixin://"];  weixin就是B應用中配置URL Schemes參數(shù)。
第三步:在A應用中通過[[UIApplication sharedApplication] canOpenURL:url] 判斷應用是否存在过椎。
第四步:如果應用存在打開應用[[UIApplication sharedApplication] openURL:url];
備注:在執(zhí)行第三步操作時室梅,控制臺可能打印錯誤信息,原因是蘋果公司為了提高應用的安全性疚宇,想要訪問必須設置對應白名單亡鼠,白名單中最大允許50個應用被訪問,如何設置白名單敷待,
進入Info.plist文件中增加以下代碼:
<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>weixin</string>
        .....
    </array>
//  2 .跳轉(zhuǎn)傳參數(shù):
在簡單的跳轉(zhuǎn)的url中稍作修改:
URL配置:
 NSURL *url = [NSURL URLWithString:@"weixin://www.shixueqian.com/abc?title=hello&content=helloworld"];     //打開url
在B應用的AppDelegate.m 文件中增加接收參數(shù)的代理就行:
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {     
 NSLog(@"url=====%@ \\n  sourceApplication=======%@ \\n  annotation======%@", url, sourceApplication, annotation);     
  return YES; 
}
IOS提供的代理:
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url ;  //回調(diào)是在iOS2.0的時候推出的间涵,參數(shù)只有url。
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation ;//B回到是在iOS4.2的時候推出的榜揖,參數(shù)有url sourceApplication annotation
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options NS_AVAILABLE_IOS(9_0);//B回到是在iOS4.2的時候推出的浑厚,參數(shù)有url sourceApplication annotation
  1. 通過運行時股耽,置換兩個方法執(zhí)行順序:
Method cell = class_getClassMethod([UITableView class], @selector(tableView:cellForRowAtIndexPath:));
Method cellHeight = class_getClassMethod([UITableView class], @selector(tableView:heightForRowAtIndexPath:));
method_exchangeImplementations(cell, cellHeight);
  1. 目錄文件獲取:
// 獲取沙盒主目錄路徑  
NSString *homeDir = NSHomeDirectory();  
// 獲取Documents目錄路徑  
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
NSString *docDir = [paths objectAtIndex:0];  
// 獲取Caches目錄路徑  
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);  
NSString *cachesDir = [paths objectAtIndex:0];  
// 獲取tmp目錄路徑  
NSString *tmpDir =  NSTemporaryDirectory();  
  1. 在一個字符串中查找另外一個字符是否存在:
[request.resourPath rangeOfString:@"?"].location == NSNotFound
  1. 數(shù)組去重的三個小技巧:
+(NSArrayExample *)shareManager {
    static NSArrayExample *ae;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        ae = [[NSArrayExample alloc]init];
    });
    return ae;
}
+(NSArrayExample *)arrayRemove:(NSArray <NSString *> *)sourceArray arrayBlock:(void(^)(NSArray<NSString *> * _array))arrayBlock {
    // 第一種方式 (有序) 利用NSMutableArray自帶的containsObject方法檢查重復值去重
//    NSMutableArray *array = [[NSMutableArray alloc]initWithCapacity:sourceArray.count];
//    for (NSString *value in sourceArray) {
//        // 檢查數(shù)組中是否包含該值
//        if (![array containsObject:value]) {
//            [array addObject:value];
//        }
//    
   // 第二種方式(無序)利用NSMutableDictionary自身的特點,不能添加重復值達到去重钳幅,效率比第一種方式高
//    NSMutableDictionary *dic = [[NSMutableDictionary alloc]initWithCapacity:sourceArray.count];
//    for (NSString *value in sourceArray) {
//        [dic setObject:value forKey:value];
//    }
//    NSArray *array = dic.allValues;
//
    // 第三中方式(無序)和第二種方式一樣的思路
    NSSet *set = [NSSet setWithArray:sourceArray];
    NSArray *array = [set allObjects];
    if (array.count != 0 && array != nil) {
        if (arrayBlock) {
            arrayBlock(array);
        }
    }
    return [self shareManager];
}
  1. 處理URL中包含中文字符:
//IOS8
[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//IOS9
[str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]
  1. 如何判斷項目文件是否包含指定nib文件:
if ([[NSBundle mainBundle]pathForResource:self.identifiers[i] ofType:@"nib"] != nil) {
// ...code
}
  1. NSString轉(zhuǎn)NSDate:
// 字符轉(zhuǎn)日期  2016-12-15
+(NSDate *)charConvertDate:(NSString *) str{
     NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    formatter.dateFormat = @"yyyy-MM-dd";
    formatter.timeZone   = [NSTimeZone defaultTimeZone];
    NSDate *date         = [formatter dateFromString:str];
    return date;
}
  1. 將navigationbar 上的按鈕靠邊:
 UIBarButtonItem * backBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:self.backButton];
        UIBarButtonItem *space = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:self action:nil];
        space.width = -20;
        viewController.navigationItem.leftBarButtonItems = @[space,backBarButtonItem];
}
  1. 獲取某個view所在的控制器:
-(UIViewController *)viewController{  UIViewController *viewController = nil;   
 UIResponder *next = self.nextResponder; 
 while (next)  {    
  if ([next isKindOfClass:[UIViewController class]])    {      
viewController = (UIViewController *)next;            
break;       
 }       
 next = next.nextResponder;   
 }   
 return viewController;
}
  1. 兩種方法刪除NSUserDefaults所有記錄:
//方法一
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
//方法二
-(void)resetDefaults
{
    NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];
    NSDictionary * dict = [defs dictionaryRepresentation];
    for (id key in dict) {
        [defs removeObjectForKey:key];
    }
    [defs synchronize];
}
  1. 打印系統(tǒng)所有已注冊的字體名稱:
void enumerateFonts()
{
    for(NSString *familyName in [UIFont familyNames])
   {
        NSLog(@"%@",familyName);               
        NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];       
        for(NSString *fontName in fontNames)
       {
            NSLog(@"\\t|- %@",fontName);
       }
   }
}
  1. 獲取圖片某一點的顏色:
-(UIColor*) getPixelColorAtLocation:(CGPoint)point inImage:(UIImage *)image
{  
UIColor* color = nil;
    CGImageRef inImage = image.CGImage;
    CGContextRef cgctx = [self createARGBBitmapContextFromImage:inImage];
  if (cgctx == NULL) {
        return nil; /* error */
    }
    size_t w = CGImageGetWidth(inImage);
    size_t h = CGImageGetHeight(inImage);
    CGRect rect = {{0,0},{w,h}};
    CGContextDrawImage(cgctx, rect, inImage);
    unsigned char* data = CGBitmapContextGetData (cgctx);
    if (data != NULL) {
        int offset = 4*((w*round(point.y))+round(point.x));
        int alpha =  data[offset];
        int red = data[offset+1];
        int green = data[offset+2];
        int blue = data[offset+3];
        color = [UIColor colorWithRed:(red/255.0f) green:(green/255.0f) blue:
                 (blue/255.0f) alpha:(alpha/255.0f)];
    }
    CGContextRelease(cgctx);
    if (data) {
        free(data);
    }
    return color;
}
  1. 禁止鎖屏:
[UIApplication sharedApplication].idleTimerDisabled = YES;
或
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
  1. iOS跳轉(zhuǎn)到App Store下載應用評分:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APPID"]];
  1. iOS 獲取漢字的拼音:
+(NSString *)transform:(NSString *)chinese
{    
    //將NSString裝換成NSMutableString 
    NSMutableString *pinyin = [chinese mutableCopy];    
    //將漢字轉(zhuǎn)換為拼音(帶音標)    
    CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformMandarinLatin, NO);    
    NSLog(@"%@", pinyin);    
    //去掉拼音的音標    
    CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformStripCombiningMarks, NO);    
    NSLog(@"%@", pinyin);    
    //返回最近結(jié)果    
    return pinyin;
 }
  1. 獲取實際使用的LaunchImage圖片:
-(NSString *)getLaunchImageName
{
    CGSize viewSize = self.window.bounds.size;
    // 豎屏    
    NSString *viewOrientation = @"Portrait";  
    NSString *launchImageName = nil;    
    NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
    for (NSDictionary* dict in imagesDict)
    {
        CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
        if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]])
        {
            launchImageName = dict[@"UILaunchImageName"];        
        }    
    }    
    return launchImageName;
} }
  1. 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);
  1. NSDateFormatter的格式:
G: 公元時代物蝙,例如AD公元
yy: 年的后2位
yyyy: 完整年
MM: 月,顯示為1-12
MMM: 月敢艰,顯示為英文月份簡寫,如 Jan
MMMM: 月诬乞,顯示為英文月份全稱,如 Janualy
dd: 日钠导,2位數(shù)表示震嫉,如02
d: 日,1-2位顯示牡属,如 2
EEE: 簡寫星期幾票堵,如Sun
EEEE: 全寫星期幾,如Sunday
aa: 上下午逮栅,AM/PM
H: 時悴势,24小時制,0-23
K:時措伐,12小時制特纤,0-11
m: 分,1-2位
mm: 分侥加,2位
s: 秒捧存,1-2位
ss: 秒,2位
S: 毫秒
  1. #324a23顏色轉(zhuǎn)USColor:
+(UIColor *) stringTOColor:(NSString *)str
{
    if (!str || [str isEqualToString:@""]) {
        return nil;
    }
    unsigned red,green,blue;
    NSRange range;
    range.length = 2;
    range.location = 1;
    [[NSScanner scannerWithString:[str substringWithRange:range]] scanHexInt:&red];
    range.location = 3;
    [[NSScanner scannerWithString:[str substringWithRange:range]] scanHexInt:&green];
    range.location = 5;
    [[NSScanner scannerWithString:[str substringWithRange:range]] scanHexInt:&blue];
    UIColor *color= [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:1];
    return color;
}
  1. 獲取當前視圖:
[[UIApplication sharedApplication].windows lastObject]

總結(jié):

文章后續(xù)還會更新担败。文章中可能存在錯別字或者理解不到位的地方昔穴,歡迎挑刺,如果你也是一枚IOS愛好者提前,請加入我們的QQ群:126440594吗货,一起分享,一起成長岖研。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市警检,隨后出現(xiàn)的幾起案子孙援,更是在濱河造成了極大的恐慌,老刑警劉巖扇雕,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拓售,死亡現(xiàn)場離奇詭異,居然都是意外死亡镶奉,警方通過查閱死者的電腦和手機础淤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門崭放,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鸽凶,你說我怎么就攤上這事币砂。” “怎么了玻侥?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵决摧,是天一觀的道長。 經(jīng)常有香客問我凑兰,道長掌桩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任姑食,我火速辦了婚禮波岛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘音半。我一直安慰自己则拷,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布祟剔。 她就那樣靜靜地躺著隔躲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪物延。 梳的紋絲不亂的頭發(fā)上宣旱,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音叛薯,去河邊找鬼浑吟。 笑死,一個胖子當著我的面吹牛耗溜,可吹牛的內(nèi)容都是我干的组力。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼抖拴,長吁一口氣:“原來是場噩夢啊……” “哼燎字!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起阿宅,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤候衍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后洒放,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛉鹿,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年往湿,在試婚紗的時候發(fā)現(xiàn)自己被綠了妖异。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惋戏。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖他膳,靈堂內(nèi)的尸體忽然破棺而出响逢,到底是詐尸還是另有隱情,我是刑警寧澤矩乐,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布龄句,位于F島的核電站,受9級特大地震影響散罕,放射性物質(zhì)發(fā)生泄漏分歇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一欧漱、第九天 我趴在偏房一處隱蔽的房頂上張望职抡。 院中可真熱鬧,春花似錦误甚、人聲如沸缚甩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽擅威。三九已至,卻和暖如春冈钦,著一層夾襖步出監(jiān)牢的瞬間郊丛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工瞧筛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厉熟,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓较幌,卻偏偏與公主長得像揍瑟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子乍炉,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容