ios 小知识仅供参考

 //计算字符串中单词的个数 1     + (int)countWords:(NSString*)s
 2     {
 3         int i,n=[s length],l=0,a=0,b=0;
 4         unichar c;
 5         for(i=0;i<n;i++){
 6             c=[s characterAtIndex:i];
 7             if(isblank(c))
 8             {
 9                 b++;
10             }else if(isascii(c))
11             {
12                 a++;
13             }else
14             {
15                 l++;
16             }
17         }
18         if(a==0 && l==0)
19         {
20             return 0;
21         }
22         return l+(int)ceilf((float)(a+b)/2.0);
23     }  
//获取系统语言+ (NSString *)getLocalLanguage
{
    NSString *language = [[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0];
    return language;
} 
//获取本月,本周,本季度第一天的时间戳+ (unsigned long long)getFirstDayOfWeek:(unsigned long long)timestamp
{
    NSDate *now = [NSDate dateWithTimeIntervalSince1970:timestamp];
    NSCalendar *cal = [NSCalendar currentCalendar];
    NSDateComponents *comps = [cal
                               components:NSYearCalendarUnit| NSMonthCalendarUnit| NSWeekCalendarUnit | NSWeekdayCalendarUnit |NSWeekdayOrdinalCalendarUnit
                               fromDate: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 = [cal
                               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 = [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 = [cal
                               components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit
                               fromDate:now];
    comps.day = 1;
    NSDate *firstDay = [cal dateFromComponents:comps];
    return [firstDay timeIntervalSince1970]*1000;
}
//监测网络状态 1 - (void)reachabilityChanged:(NSNotification *)note {
 2     Reachability* curReach = [note object];
 3     NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
 4     NetworkStatus status = [curReach currentReachabilityStatus];
 5
 6     if (status == NotReachable)
 7     {
 8
 9     }
10     else if(status == kReachableViaWiFi)
11     {
12
13     }
14     else if(status == kReachableViaWWAN)
15     {
16
17     }
18
19 }
20
21 - (void)setNetworkNotification
22 {
23     [[NSNotificationCenter defaultCenter] addObserver:self
24                                              selector:@selector(reachabilityChanged:)
25                                                  name: kReachabilityChangedNotification
26                                                object: nil];
27     _hostReach = [[Reachability reachabilityWithHostName:@"http://www.baidu.com"] retain];
28     [_hostReach startNotifier];
29 }
//16进制颜色转UIColor 1 + (UIColor *)colorWithHex:(NSString *)hex {
 2     // Remove `#` and `0x`
 3     if ([hex hasPrefix:@"#"]) {
 4         hex = [hex substringFromIndex:1];
 5     } else if ([hex hasPrefix:@"0x"]) {
 6         hex = [hex substringFromIndex:2];
 7     }
 8
 9     // Invalid if not 3, 6, or 8 characters
10     NSUInteger length = [hex length];
11     if (length != 3 && length != 6 && length != 8) {
12         return nil;
13     }
14
15     // Make the string 8 characters long for easier parsing
16     if (length == 3) {
17         NSString *r = [hex substringWithRange:NSMakeRange(0, 1)];
18         NSString *g = [hex substringWithRange:NSMakeRange(1, 1)];
19         NSString *b = [hex substringWithRange:NSMakeRange(2, 1)];
20         hex = [NSString stringWithFormat:@"%@%@%@%@%@%@ff",
21                r, r, g, g, b, b];
22     } else if (length == 6) {
23         hex = [hex stringByAppendingString:@"ff"];
24     }
25
26     CGFloat red = [[hex substringWithRange:NSMakeRange(0, 2)] _hexValue] / 255.0f;
27     CGFloat green = [[hex substringWithRange:NSMakeRange(2, 2)] _hexValue] / 255.0f;
28     CGFloat blue = [[hex substringWithRange:NSMakeRange(4, 2)] _hexValue] / 255.0f;
29     CGFloat alpha = [[hex substringWithRange:NSMakeRange(6, 2)] _hexValue] / 255.0f;
30
31     return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
32 }
时间: 2024-10-06 06:28:21

ios 小知识仅供参考的相关文章

信息与通信工程——重要国际学术会议和国际顶级期刊(仅供参考)

一.信息与通信工程的重要国际学术会议 主要包含两类: A类会议:本学科最顶尖级水平的国际会议: B类会议:学术水平较高.组织工作成熟.按一定时间间隔系列性召开的国际会议. A类会议(序号不表示优先顺序) 序号 / 英文名称 / 英文简称 / 中文名称 / 备注 1.IEEE International Conference on Acoustics, Speech and Signal Processing /  ICASAP /     IEEE 声学.语音和信号处理国际会议 2.IEEE I

如何有效防止DEDE织梦系统被挂木马安全设置(仅供参考)

尊敬的客户,您好!     感谢广大客户对我司工作的信任和支持!      我司在最近的一个多月内陆续发现多起因 DedeCMS 安全漏洞造成网站被上传恶意脚本的事件,入侵者可利用恶意脚本对外发送大量数据包,严重占用CPU资源与服务器带宽,影响极为恶劣.为保证服务稳定,即日起一旦发现网站存在此类恶意脚本,我们将立即暂停该网站的服务直到问题修复.如果您正在使用 DedeCMS,请立即检查是否已经存在恶意脚本,并更新程序到最新版本或应用相关补丁.     迄今为止,我们发现的恶意脚本文件有    

短信接口与短信平台收费标准----速码云仅供参考

就目前来说短信接口 价格参考 行业收费也基本上没有个固定的标准的价格,都是看各个公司自己的通道套餐跑的量和公司的运营成本结合预算后最终才来制定一套给客户的价格,所以说在短信行业里面短信公司获取的利润是非常小的,除了运营商的短信通道费用之外还有公司的人员成本,公司的场地,服务器和系统等等一切费用,一般几分钱的短信利润大的可能是1-2分钱,如果客户购买得多的话那么几个就会很低,那么利润就有可能是几厘钱了,所以短信公司也是薄利多销,下面就提供一些短信接口行业一般的短信价格给大家参考. 套餐1,比如购买

iOS 小知识-tips

--->1<--- arc的项目中使用非arc代码,则添加-fno-objc-arc: 非arc项目中使用arc代码,则添加-fobjc-arc. --->2<--- 实用的类 NSKeyedArchiver [UIScreen mainScreen] [UIDevice currentDevice] [UIFont familyNames] [UIApplication sharedApplication] [NSUserDefaults standardUserDefaults

Ubuntu 12.04 分区方案(仅供参考)

Ubuntu 12.04 分区方案(仅供参考) 总空间大小:50G 目录 建议大小 实际大小 格式 描述 / 10G~20G 10G ext4 根目录 swap <2048M 1G swap 交换空间 /boot 200M左右 100M ext4 Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img文件都位于这个目录中.在一般情况下,GRUB或LILO系统引导管理器也位于这个目录:启动撞在文件存放位置,如kernels,initrd,grub. /tmp 5G左

四套写入方案(仅供参考)

四套写入方案 第一套:字节流读取写入方案 FileInputStream :字节流方式读取文本文件 FileOutputStream:字节流写入硬盘 第二套:字符流读取写入方案 FileReader:字符流读取文本 FileWriter:字符流写入文本 第三套: BufferedReader:自定义缓存大小 BufferedWriter:写入文本 一般和FileReader和FileWriter结合使用 第四套:可以读取二进制(img图片等 ) DataInputStream:将本地的img加载

Unity上一页下一页切换功能实现源码(仅供参考)

在做项目时我们有时需要实现切换上一页下一页图片,切换上一首下一首歌曲等等类似的功能.这里写了个简单的实现源码(仅供参考),要是有更好的方法欢迎提出来,共同进步~ 以切换上一页下一页图片为例: using UnityEngine; using System.Collections; using UnityEngine.UI; public class PanoramaManager : MonoBehaviour { //图片存放数组 Texture2D[] arr; //下一张按钮计数索引 in

开发问题---数据库字段前出现“—”(保存留用,仅供参考)

开发时数据调用往往会用到占位符,然而刚开始使用很容易碰见sql语句在SQLServer中查询时显示"-",如下代码: #region 先判断是否有记录,再确定使用哪条命令 //查询数据库 20140713 commandText = "use zzbjcdzz select *" + "from [T_VillageBasicInfo] " + "where ltrim(rtrim([code]))='{0}' "; //注意

Django开发的简单CMDB系统(仅供参考)

自己基于django开发的一个简单机房机柜CMDB系统,仅供参考.欢迎在下面留言,提出修改意见. 可实现增删改查. 权限未做,很多功能都没做,只做一个最基本的,初学. 前端模板用的inspinia2.5,和jumpserver用的一样的模块,所以看着差不多.模板可自行百度搜索. 放到pycharm或者linux环境下,配置好,运行就可以. domo 登录:http://42.62.6.54:8001/index.html  ,默认用户名hequan,密码123456. 下载链接:http://p