Xcode升级后的Bug处理

Xcode升级到4.4后,出现了一堆的Warning.网上搜了一些办法,总结一下。

1:Jsonkit中的

Direct access to objective-c's isa is deprecated in favor of object_setClass() and object_getClass()

object->isa 替换为 object_getClass(object)
keyObject->isa 替换为 object_getClass(keyObject)
(id)keys[idx]->isa 替换为 object_getClass((id)keys[idx])

format specifies type 'unsigned long' but the argument has type 'nsuinteger' (aka 'unsigned int')
给变量增加(unsigned long)进行类型转换


2:md5加密(iOS SDK中自带了CommonCrypto)

Implicit declaration of function 'CC_MD5' is invalid in C99

[plain]  view plain copy
  1. #define CC_MD5_DIGEST_LENGTH 16  
  2. +(NSString *)MD5HashForString:(NSString *)input {  
  3.     const char *cStr = [input UTF8String];  
  4.     unsigned char result[CC_MD5_DIGEST_LENGTH];  
  5.     CC_MD5(cStr, strlen(cStr), result);  
  6.     return [NSString stringWithFormat: @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",  
  7.             result[0], result[1], result[2], result[3],  
  8.             result[4], result[5], result[6], result[7],  
  9.             result[8], result[9], result[10], result[11],  
  10.             result[12], result[13], result[14], result[15]];  
  11. }  
引入函数定义的头文件

#import <CommonCrypto/CommonDigest.h>


3:ASIDataDecompressor中的警告

format specifies type  'short' but the  argument has type 'int'

在+ (NSError *)deflateErrorWithCode:(int)code 和 +(NSError *)inflateErrorWithCode:(int)code中

[NSString stringWithFormat:@"Compression of data failed with code %hi",code] 中

将code改为 (short)code,类型转换


4:Reachability中警告

Using 'stringWithString:' with a literal is redundant

 statusString = [NSString stringWithString: @"Not Reachable"]
 改为:statusString = @"Not Reachable";


谢谢samuelltk 的补充,在增加下面一个:

5.format specifies type 'id' but the argument has type 'const char *'

NSCAssert(NO, @"Unhandled error encountered during SAX parse. msg is %@", msg);
改为:NSCAssert(NO, @"Unhandled error encountered during SAX parse. msg is %@", [NSString stringWithUTF8String:msg]);

你可能感兴趣的:(Xcode升级后的Bug处理)