1. 程式人生 > >Xcode升級常常遇到警告錯誤的解決方法

Xcode升級常常遇到警告錯誤的解決方法

31警告:
 warning: Semantic Issue: Incompatible integer to pointer conversion assigning to 'BOOL *' (aka 'signed char *') from 'BOOL' (aka 'signed char')

解決辦法: 檢查 BOOL *換為BOOL就可以了,檢查是不是多寫一個   *  號。


32: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)進行型別轉換


33: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>


34: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,型別轉換


35:Reachability中警告

Using 'stringWithString:' with a literal is redundant

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

改為:statusString = @"Not Reachable";


36.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]);

37 Using 'stringWithString:' with a literal is redundant
改為:self.locationInput.text = @"captured change";


38 在專案中設定控制元件的layer屬性時,會發生錯誤,
"Property 'c' cannot be found in forward class object 'CALayer *",


這時需要引入  #import <QuartzCore/CALayer.h>。