iOS---常用方法總結

來源:互聯網
上載者:User

iOS---常用方法總結

最近兩個月,在開發自己公司的一個靜態庫,碰到了一些比較奇葩的問題,不過最後都解決了,與大家分享一下我的解決方案

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

[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:jsonData options: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都沒有問題,其它的沒有裝置,待測試!

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.