iOS---常用方法总结
来源:互联网 发布:设计彩盒用什么软件 编辑:程序博客网 时间:2024/05/16 06:16
最近两个月,在开发自己公司的一个静态库,碰到了一些比较奇葩的问题,不过最后都解决了,与大家分享一下我的解决方法
1. sha1加密:
+ (NSString *) sha1:(NSString *)input {
if (!input || [inputisEqualToString:@""]) {
return@"";
}
// const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];
// NSData *data = [NSData dataWithBytes:cstr length:input.length];
// 之所以将上面两行代码更换为如下一行代码,是因为,在加密中文时,发现上面那种会丢失数据
NSData *data = [inputdataUsingEncoding:NSUTF8StringEncoding];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(data.bytes, (unsignedint)data.length, digest);
NSMutableString *output = [NSMutableStringstringWithCapacity:CC_SHA1_DIGEST_LENGTH *2];
for(int i=0; i<CC_SHA1_DIGEST_LENGTH; i++) {
[output appendFormat:@"%02x", digest[i]];
}
return output;
}
2. 解析json串
+ (id)getJsonObjectWithJsonStr:(NSString *)jsonStr {
if (jsonStr ==nil) {
returnnil;
}
//下面两行代码,是为了防止json串中含有一些url encode的特殊字符
jsonStr = [(NSString *)jsonStrstringByReplacingOccurrencesOfString:@"+"withString:@" "];
jsonStr = [jsonStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData *jsonData = [jsonStrdataUsingEncoding:NSUTF8StringEncoding];
NSError *error;
id object = [NSJSONSerializationJSONObjectWithData:jsonDataoptions:NSJSONReadingMutableContainerserror:&error];
if (error) {
LGLog(@"json解析失败:%@", error);
returnnil;
}
return object;
}
3. 判断string中是否含有中文字符
+ (BOOL)IsChinese:(NSString *)str {
for(int i=0; i< [strlength];i++) {
int a = [strcharacterAtIndex:i];
if( a >0x4e00 && a <0x9fff) {
returnYES;
}
} returnNO;
}
4. 判断越狱机器,因为越狱的设备都会安装有cydia
+ (BOOL)isJailBreak
{
if ([[UIApplicationsharedApplication]canOpenURL:[NSURLURLWithString:@"cydia://"]]) {
NSLog(@"The device is jail broken!");
returnYES;
}
NSLog(@"The device is NOT jail broken!");
returnNO;
}
5. 根据文本内容,动态计算label高度
指定label的width后,调用 [label sizeToFit]方法即可,在iPhone5s、iPhone6、iPhone6 Plus都没有问题,其它的没有设备,待测试!
- iOS---常用方法总结
- iOS常用方法总结
- ios字符串常用方法总结
- iOS Quartz2D 常用方法总结
- iOS GCD常用方法总结
- iOS开发常用方法总结
- iOS NSMutableAttributedString常用方法总结
- iOS之UIView常用方法总结
- iOS笔记-(ASI缓存常用方法总结)
- IOS UITextField常用的代理方法总结
- iOS UIlabel一些常用属性方法总结
- iOS的NSString常用方法总结
- iOS中常用UI层方法总结
- 常用iOS-oc工具方法总结
- iOS 常用组件-高效切圆角方法总结
- iOS 常用组件-高效切圆角方法总结
- iOS 常用组件-高效切圆角方法总结
- iOS GCD集汇(三)GCD常用方法总结
- Python之yield
- iOS 多个引用库文件冲突
- [leetcode 260]Single Number III
- 微信开发第七篇发送素材(图文)信息
- C# 16进制转 Brush 颜色对象
- iOS---常用方法总结
- Linux yum使用
- awk的用法
- 序
- Centos 6.7 32bit 编译vlc-2.2.0
- Length of Last Word
- 网站品牌为何对于SEO排名如此重要?
- 定义一个只能在栈上构造对象的类
- Android-调用本地方法计算int数值相加结果显示在界面上/NDK-JNI开发实例(三)