CYC- IOS 常用的一些小东西
2015-09-28 20:57
423 查看
获取时间差,(几天前,几小时前,几分钟前)
获取本月,本周,本季度第一天的时间戳
添加推送消息
判断是否越狱
屏幕截图并保存到相册
获取本地的语言
+ (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])]; } }
获取本月,本周,本季度第一天的时间戳
+ (unsigned long long)getFirstDayOfWeek:(unsigned long long)timestamp { NSDate *now = [NSDate dateWithTimeIntervalSince1970:timestamp]; NSCalendar *cale = [NSCalendar currentCalendar]; NSDateComponents *comps = [cale components:NSYearCalendarUnit| NSMonthCalendarUnit| NSWeekCalendarUnit | NSWeekdayCalendarUnit |NSWeekdayOrdinalCalendarUnit fromDate:now]; if (comps.weekday <2) { comps.week = comps.week-1; } comps.weekday = 2; NSDate *firstDay = [cale dateFromComponents:comps]; return [firstDay timeIntervalSince1970]; } + (unsigned long long)getFirstDayOfQuarter:(unsigned long long)timestamp { NSDate *now = [NSDate dateWithTimeIntervalSince1970:timestamp]; NSCalendar *cale = [NSCalendar currentCalendar]; NSDateComponents *comps = [cale components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate: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 = [cale dateFromComponents:comps]; return [firstDay timeIntervalSince1970]*1000; } + (unsigned long long)getFirstDayOfMonth:(unsigned long long)timestamp { NSDate *now = [NSDate dateWithTimeIntervalSince1970:timestamp/1000]; NSCalendar *cale = [NSCalendar currentCalendar]; NSDateComponents *comps = [cale components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:now]; comps.day = 1; NSDate *firstDay = [cale dateFromComponents:comps]; return [firstDay timeIntervalSince1970]*1000; }
添加推送消息
- (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); }
判断是否越狱
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 1 for ( int i = 0; __jb_apps[i]; ++i ) { if ( [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithUTF8String:__jb_apps[i]]] ) { __jb_app = __jb_apps[i]; return YES; } } // method 2 if ( [[NSFileManager defaultManager] fileExistsAtPath:@"/private/var/lib/apt/"] ) { return YES; } // method 3 if ( 0 == system("ls") ) { return YES; } return NO; } + (NSString *)jailBreaker { if ( __jb_app ) { return [NSString stringWithUTF8String:__jb_app]; } else { return @""; } }
屏幕截图并保存到相册
+ (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:title message:message delegate:nil cancelButtonTitle:@"知道了" otherButtonTitles:nil]; [alert show]; [alert release]; }
获取本地的语言
+ (NSString *)getLocalLanguage { NSString *language = [[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0]; return language; }
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- oracle SCN跟TIMESTAMP之间转换
- C#更新SQLServer中TimeStamp字段(时间戳)的方法
- MySQL 5.6 中 TIMESTAMP有那些变化
- MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误
- mysql之TIMESTAMP(时间戳)用法详解
- MySQL timestamp自动更新时间分享
- Sqlserver timestamp数据类使用介绍
- mysql多个TimeStamp设置的方法解读
- Java中Date,Calendar,Timestamp的区别以及相互转换与使用
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数