1、获取本地的语言

+ (NSString *)getLocalLanguage
{NSString *language = [[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0];return language;
}

2、获取Mac地址

// returns the local MAC address.
+ (NSString*) macAddress:(NSString*)interfaceNameOrNil
{// uses en0 as the default interface nameNSString* interfaceName = interfaceNameOrNil;if (interfaceName == nil){interfaceName = @"en0";}int                 mib[6];size_t              len;char                *buf;unsigned char       *ptr;struct if_msghdr    *ifm;struct sockaddr_dl  *sdl;mib[0] = CTL_NET;mib[1] = AF_ROUTE;mib[2] = 0;mib[3] = AF_LINK;mib[4] = NET_RT_IFLIST;if ((mib[5] = if_nametoindex([interfaceName UTF8String])) == 0){printf("Error: if_nametoindex error\n");return NULL;}if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0){printf("Error: sysctl, take 1\n");return NULL;}if ((buf = malloc(len)) == NULL){printf("Could not allocate memory. error!\n");return NULL;}if (sysctl(mib, 6, buf, &len, NULL, 0) < 0){printf("Error: sysctl, take 2");free(buf);return NULL;}ifm = (struct if_msghdr*) buf;sdl = (struct sockaddr_dl*) (ifm + 1);ptr = (unsigned char*) LLADDR(sdl);NSString *outstring = [NSString stringWithFormat:@"%02X:%02X:%02X:%02X:%02X:%02X",*ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5)];free(buf);return outstring;
}

3、微博中获取时间差,(几天前,几小时前,几分钟前)

+ (NSString *) getTimeDiffString:(NSTimeInterval) timestamp
{NSCalendar *cal = [NSCalendar currentCalendar];NSDate *todate = [NSDate dateWithTimeIntervalSince1970:timestamp];NSDate *today = [NSDate date];//当前时间unsigned int unitFlag = NSDayCalendarUnit | NSHourCalendarUnit |NSMinuteCalendarUnit;NSDateComponents *gap = [cal components:unitFlag fromDate:today toDate:todate options:0];//计算时间差if (ABS([gap day]) > 0){return [NSString stringWithFormat:@"%d天前", ABS([gap day])];}else if(ABS([gap hour]) > 0){return [NSString stringWithFormat:@"%d小时前", ABS([gap hour])];}else {return [NSString stringWithFormat:@"%d分钟前",  ABS([gap minute])];}
}

4、计算字符串中单词的个数

+ (int)countWords:(NSString*)s
{int i,n=[s length],l=0,a=0,b=0;unichar c;for(i=0;i<n;i++){c=[s characterAtIndex:i];if(isblank(c)){b++;}else if(isascii(c)){a++;}else{l++;}}if(a==0 && l==0){return 0;}return l+(int)ceilf((float)(a+b)/2.0);
}

5、屏幕截图并保存到相册

+ (UIImage*)saveImageFromView:(UIView*)view
{UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, view.layer.contentsScale);[view.layer renderInContext:UIGraphicsGetCurrentContext()];UIImage *image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();return image;
}+ (void)savePhotosAlbum:(UIImage *)image
{UIImageWriteToSavedPhotosAlbum(image, self, @selector(imageSavedToPhotosAlbum: didFinishSavingWithError: contextInfo:), nil);
}+ (void)saveImageFromToPhotosAlbum:(UIView*)view
{UIImage *image = [self saveImageFromView:view];[self savePhotosAlbum:image];
}- (void)imageSavedToPhotosAlbum:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *) contextInfo
{NSString *message;NSString *title;if (!error) {title = @"成功提示";message = @"成功保存到相";} else {title = @"失败提示";message = [error description];}UIAlertView *alert = [[UIAlertView alloc] initWithTitle:titlemessage:messagedelegate:nilcancelButtonTitle:@"知道了"otherButtonTitles:nil];[alert show];[alert release];
}

5、获取本月,本周,本季度第一天的时间戳

+ (unsigned long long)getFirstDayOfWeek:(unsigned long long)timestamp
{NSDate *now = [NSDate dateWithTimeIntervalSince1970:timestamp];NSCalendar *cal = [NSCalendar currentCalendar];NSDateComponents *comps = [calcomponents:NSYearCalendarUnit| NSMonthCalendarUnit| NSWeekCalendarUnit | NSWeekdayCalendarUnit |NSWeekdayOrdinalCalendarUnitfromDate:now];if (comps.weekday <2){comps.week = comps.week-1;}comps.weekday = 2;NSDate *firstDay = [cal dateFromComponents:comps];return [firstDay timeIntervalSince1970];
}+ (unsigned long long)getFirstDayOfQuarter:(unsigned long long)timestamp
{NSDate *now = [NSDate dateWithTimeIntervalSince1970:timestamp];NSCalendar *cal = [NSCalendar currentCalendar];NSDateComponents *comps = [calcomponents:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnitfromDate:now];if (comps.month <=3){comps.month =  1;}else if(comps.month<=6){comps.month =  4;}else if(comps.month<=9){comps.month =  7;}else if(comps.month<=12){comps.month =  10;}comps.day = 1;NSDate *firstDay = [cal dateFromComponents:comps];return [firstDay timeIntervalSince1970]*1000;
}+ (unsigned long long)getFirstDayOfMonth:(unsigned long long)timestamp
{NSDate *now = [NSDate dateWithTimeIntervalSince1970:timestamp/1000];NSCalendar *cal = [NSCalendar currentCalendar];NSDateComponents *comps = [calcomponents:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnitfromDate:now];comps.day = 1;NSDate *firstDay = [cal dateFromComponents:comps];return [firstDay timeIntervalSince1970]*1000;
}

6、判断是否越狱

static const char * __jb_app = NULL;+ (BOOL)isJailBroken
{static const char * __jb_apps[] ={"/Application/Cydia.app", "/Application/limera1n.app", "/Application/greenpois0n.app", "/Application/blackra1n.app","/Application/blacksn0w.app","/Application/redsn0w.app",NULL};__jb_app = NULL;// method 1for ( int i = 0; __jb_apps[i]; ++i ){if ( [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithUTF8String:__jb_apps[i]]] ){__jb_app = __jb_apps[i];return YES;}}// method 2if ( [[NSFileManager defaultManager] fileExistsAtPath:@"/private/var/lib/apt/"] ){return YES;}// method 3if ( 0 == system("ls") ){return YES;}return NO;
}+ (NSString *)jailBreaker
{if ( __jb_app ){return [NSString stringWithUTF8String:__jb_app];}else{return @"";}
}

7、定义单例的宏

#undef   AS_SINGLETON
#define AS_SINGLETON( __class ) \+ (__class *)sharedInstance;#undef    DEF_SINGLETON
#define DEF_SINGLETON( __class ) \+ (__class *)sharedInstance \{ \static dispatch_once_t once; \static __class * __singleton__; \dispatch_once( &once, ^{ __singleton__ = [[__class alloc] init]; } ); \return __singleton__; \}

8、网络状态检测

- (void)reachabilityChanged:(NSNotification *)note {Reachability* curReach = [note object];NSParameterAssert([curReach isKindOfClass: [Reachability class]]);NetworkStatus status = [curReach currentReachabilityStatus];if (status == NotReachable){}else if(status == kReachableViaWiFi){}else if(status == kReachableViaWWAN){}}- (void)setNetworkNotification
{[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(reachabilityChanged:)name: kReachabilityChangedNotificationobject: nil];_hostReach = [[Reachability reachabilityWithHostName:@"http://www.baidu.com"] retain];[_hostReach startNotifier];
}

9、添加推送消息

- (void)setPushNotification
{[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound];
}- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {NSLog(@"获取设备的deviceToken: %@", deviceToken);
}- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error{NSLog(@"Failed to get token, error: %@", error);
}

10、16进制颜色转UIColor

+ (UIColor *)colorWithHex:(NSString *)hex {// Remove `#` and `0x`if ([hex hasPrefix:@"#"]) {hex = [hex substringFromIndex:1];} else if ([hex hasPrefix:@"0x"]) {hex = [hex substringFromIndex:2];}// Invalid if not 3, 6, or 8 charactersNSUInteger length = [hex length];if (length != 3 && length != 6 && length != 8) {return nil;}// Make the string 8 characters long for easier parsingif (length == 3) {NSString *r = [hex substringWithRange:NSMakeRange(0, 1)];NSString *g = [hex substringWithRange:NSMakeRange(1, 1)];NSString *b = [hex substringWithRange:NSMakeRange(2, 1)];hex = [NSString stringWithFormat:@"%@%@%@%@%@%@ff",r, r, g, g, b, b];} else if (length == 6) {hex = [hex stringByAppendingString:@"ff"];}CGFloat red = [[hex substringWithRange:NSMakeRange(0, 2)] _hexValue] / 255.0f;CGFloat green = [[hex substringWithRange:NSMakeRange(2, 2)] _hexValue] / 255.0f;CGFloat blue = [[hex substringWithRange:NSMakeRange(4, 2)] _hexValue] / 255.0f;CGFloat alpha = [[hex substringWithRange:NSMakeRange(6, 2)] _hexValue] / 255.0f;return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}

【IOS】IOS开发常用函数相关推荐

  1. iOS - 外包开发常用第三方库(1)

    一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址:https://github. ...

  2. iOS 项目开发常用配置

    iOS 9   https适配http在info.plist中配置NSAppTransportSecurity  类型为字典 包含有一个对象为: (NSAllowsArbitraryLoadsbool ...

  3. iOS之 开发常用到的宏定义

    不久前做过一个小项目种用到了就记录下来方便自己以后使用,一个非常实用的宏定义来打印函数名称等 #ifdef DEBUG #define DebugLog(fmt, ...) NSLog((@" ...

  4. iOS中 openGL常用函数记录(部分)

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 注:这行代码是用于清楚屏幕.GL_DEPTH_BUFFER_BIT 清除深度缓冲 glVerte ...

  5. Oracle开发常用函数与存储过程

    1.输出用"."符合分隔多个作者列表 Fuc_Get_AuthorName 2.获取数据库表的主键最大值 Fuc_Get_MaxId 3.根据分割类来分割字符串 sf_split_ ...

  6. ios多线程开发的常用三种方式

    ios多线程开发的常用三种方式 1.NSThread 2.NSOperationQueue 3.GCD NSThread: 创建方式主要有两种: [NSThread detachNewThreadSe ...

  7. iOS开发常用三方库、插件、知名博客

    TimLiu-iOS iOS开发常用三方库.插件.知名博客等等,期待大家和我们一起共同维护,同时也期望大家随时能提出宝贵的意见(直接提交Issues即可). 持续更新... 版本:Objective- ...

  8. iOS开发 常用第三方开源框架

    iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报 开源框架 图像: 1.图片浏览控件MWPhotoBrowse ...

  9. iOS开发常用第三方类库

    转:https://github.com/iOShuyang/Book-Recommend-Github Objective-C   Swift Objective-C 框架搭建   Swift 基础 ...

最新文章

  1. opencv 无法找到tbb_debug.dll
  2. 快手:魔性BGM你把握不住的,让AI来
  3. Mindjet MindManagers思维导图使用记录
  4. notepad 如何运行php,notepad怎么运行c
  5. Oracle表和表数据恢复
  6. XML—— 验证XML文档
  7. java基础集合简介Map(三)下
  8. python 模糊匹配_很冷门,但非常实用的 Python 库
  9. 用dos命令破解网吧限制的方法和dos命令全集[color]
  10. [Java]Socket和ServerSocket学习笔记
  11. UIPIckerView现实城市选择
  12. js cookie 的路径以及 Cookie 域
  13. 246 中心对称数
  14. c语言汇率转换代码_拜求c语言编写的人民币大小写转换的代码!
  15. 拼字 公式_蒸汽机的未来,3D拼字游戏等等
  16. CANopen协议学习
  17. java实现网上招标系统
  18. mysql jpa 批注 视图_JPA 批注参考
  19. dns找不到服务器,“找不到服务器或DNS错误”,如何调整?
  20. 程序 卡塔_我想念微软恩卡塔

热门文章

  1. 盲人辅助模式Accessibility剖析
  2. linux修改文件或目录的所有者(chown)和用户组(chgrp)
  3. nginx 手机版页面判断_Nginx配置如何区分PC或手机访问不同域名
  4. 蚂蚁全媒体中心刘鑫炜解答:企业网站推广的方法有哪些,附推广方案
  5. Json与字符串之间的转换
  6. GAN初探:模拟高斯分布
  7. 大学生HTML+CSS动漫主题网页制作——刀剑神域(6页) dreamweaver作业静态HTML网页设计
  8. Word中安装MathType先后出现错误‘53‘、‘48‘未找到MathPage.wll解决办法
  9. 计算机网络做网线,计算机网络基础(网线制作)
  10. 淼泉卫生院能耗管理系统,通过对能源的采集并管理降低能耗。