Xcode升级到4.5后,出现了一堆的Warning.网上搜了一些办法,总结一下。
#if __has_feature(objc_arc) && __clang_major__ >= 3
#define PP_ARC_ENABLED 1
#endif // __has_feature(objc_arc)
#if PP_ARC_ENABLED
#define PP_RETAIN(xx) (xx)
#define PP_RELEASE(xx) xx = nil
#define PP_AUTORELEASE(xx) (xx)
#else
#define PP_RETAIN(xx) [xx retain]
#define PP_RELEASE(xx) [xx release], xx = nil
#define PP_AUTORELEASE(xx) [xx autorelease]
#endif
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 plaincopy
#define CC_MD5_DIGEST_LENGTH 16
+(NSString *)MD5HashForString:(NSString *)input {
const char *cStr = [input UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(cStr, strlen(cStr), result);
return [NSString stringWithFormat: @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]];
}
引入函数定义的头文件
#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";
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]);
做ios网络开发的肯定会用到苹果的官方库Reachability。ios5发布了,将项目升级到ios5的过程发一个warning:
+ (Reachability*) reachabilityWithAddress: (const struct sockaddr_in*) hostAddress;
中
Declaration of 'struct sockaddr_in' will not be visible outside of this function
解决办法很简单,Reachability.h中最前面添加头文件:#import <netinet/in.h>
ios5来了,要做的事情真多,尤其是一些在ios4上好使的效果不好使了。。。
转:http://blog.csdn.net/xiaobo16/article/details/8102018
ios:升级到Xcode4.5.1的警告处理
猜你喜欢
转载自longquan.iteye.com/blog/1749433
今日推荐
周排行