1. 程式人生 > >IOS開發錯誤

IOS開發錯誤

After modifying system headers, please delete the module cache at '/Users/XXX/Library/Developer/Xcode/DerivedData/XXXX/2ZMDAUJMMHSDC'  

解決的方法:前往 '/Users/XXX/Library/Developer/Xcode/DerivedData/XXX/2ZMDAUJMMHSDC 這個目錄。刪除其目錄中的內容,然後執行app,沒問題了,注意不是刪除 2NEVAP7X943D2 目錄,而是當中的內容。

然後再  clean下專案就能夠了(product  -> clean)

參考:http://blog.csdn.net/lizhongfu2013/article/details/9106573

以下是收集到的一些錯誤整理了下:

從sdk3.2.5升級到sdk 7.1中間廢棄了非常多的方法,另一些邏輯關係更加嚴謹了。


1,警告:“xoxoxoxo”  is deprecated
解決的方法:檢視xoxoxoxo的這種方法的文件,替換掉這種方法就可以。



2,警告:Declaration of "struct sockaddr" will not be visible outside of this function
解決的方法:在你的開源.m檔案里加入 #import <netinet/in.h>



3,警告:Implicit conversion from enumeration type 'UIInterfaceOrientation' to different enumeration type 'UIDeviceOrientation'
解決的方法:型別不匹配。跳到出錯的那一行。UIInterfaceOrientation強制轉換為UIDeviceOrientation就可以了。



4,警告:incompatible pointer types assigning to 'MyArrayList*'from 'NSMutableArray'
解決的方法:加入強制轉換(MyArrayList*)



5。警告:'&&' within '||'
問題出處:
    if (exists && !isDirectory || !exists)………
  解決的方法: if ((exists && !isDirectory) || !exists)………

6。警告:Warning:The Copy Bundle Resources build phase contains this target's Info.plist file
解決的方法:將Info.plist檔案移到Resources目錄下,而不要直接放在target下。


7。警告:在使用ASIHttp…第三方庫的,執行報錯。
解決的方法:看你的專案中是否加入CFNetwork.framework、SystemConfiguration.framework, MobileCoreServices.framework,
CoreGraphics.framework和libz.1.2.3.dylib,假設是sdk5.0以上。改加入libz.1.2.5.dylib

 8,警告:xxxooo。missing required architecture i386 in file 
解決的方法:假設是錯誤資訊的話:
Target->Build Settings->Search Paths, 刪除FrameworkSearch Paths 裡面內容就能夠了。
要僅僅是一個警告的話,真機除錯能夠過。

詳細解決方法待大神出現。 

9。警告:
clang: error: no such file or directory: '/demo2/控制元件程式碼/13/Recorder/Recorder_Prefix.pch'
clang: error: no input files
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1

解決的方法: 在你的主project檔案 target搜素。pch ,找到Prefix Header    把它後面的值。都刪除,再執行就攻克了。

10,警告:
ARC forbids synthesizing a property of an Objective-C object with unspecified ownership or storage attribute
解決的方法:假設定義了ARC有效。那麼必需要有全部者屬性的定義;所以程式碼改成以下這樣
@property (nonatomic, strong, readonly) NSString *ss; 

11,警告:
io6一下的xib系統均沒有自己主動選擇Use Autolayout, Supporting iOS 5 and below with xib of iOS 6 
解決的方法:Just un-select “Use Autolayout” in the file inspector of the xib’s view and we are back to the familiar autosizing in size inspector and boom, it supports iOS 5 and below.

12,警告:
Warning: Multiple build commands for output file xxx.png 
解決的方法:找到專案裡xxx.png反覆。刪除反覆的資源。

//以下是升級到 xcode 5.0.1 之後使用遇到的警告
13,警告:
 “iOS 模擬器”未能安裝此應用程式。


解決的方法:刪除模擬器上當前要執行那個APP。又一次執行專案。就ok

14,警告:
SpringBoard無法啟動應用程式 錯誤:-3
解決的方法:退出模擬器,又一次執行這個專案。



15,警告:
The server certificate failed to verify.   
解決的方法:
1、開啟終端(有用工具 -->終端),在終端中輸入例如以下命令:
svn ls https://192.100.1.11?0/svn/xxxxxx(注意以下的url更換成你自己的url地址)
然後直接輸入 “ p ”  確認。就能夠又一次連線了。



16,警告:
Bitmasking for introspection of Objective-C object pointers is strongly discouraged.   
解決的方法:
某數字& 0x1的時候是代表要取最低位是否為1,改成了  if(JK_EXPECT_F(((NSUInteger)object)%2))就可以。

17,警告:
Implicit conversion loses integer precision: 'unsigned long' to 'CC_LONG' (aka 'unsigned int').   
解決的方法:
    CC_MD5(str,strlen(str), r);,改成了     CC_MD5(str, (CC_LONG)strlen(str), r);就可以。



18,警告:
error: failed to launch '/private/var/mobile/Applications/xxxxx' -- failed to get the task for process 11140.   
解決的方法:
    重新啟動你的開發手機就可以。另一種可能是你的開發人員證書與公佈證書搞錯了,檢查在xcode中證書是否一直 。



19,警告:
error: ignoring filxxxxxx/libBaiduMobStat.a, missing required architecture x86_64 in filexxxx/libBaiduMobStat.a   
解決的方法:
    targets ->build setting 下的  architectures 設定為 standard architetures(armv7,armv7s)   vaild architectures 設定為armv7,armv7s。

20,警告:
error: Directory not found for option '-L/Users/joryoubonxx/BaiduStatistic   
解決的方法:
  刪除  targets ->build setting 下的  library search path不對的地址,假設還不行。又一次加入第三庫、clean ,重新啟動Xcode.就可以。

遇到相關的警告。一般編譯器都會提供解決方式。所以,作為新手。我們應該看懂編譯器給我們的提示,這樣我們解決這個問題就會事半功倍。

1。  錯誤資訊:
  "_OBJC_CLASS_$  xxxxx  ", referenced from:
      objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
解決方法:
 檢視project。看是不是沒有匯入相關的框架。或者project里加入的有同樣".m",".h" 檔案


2,  錯誤資訊:
Couldn't register dy.CKRiLiText with the bootstrap server. Error: unknown error code.
This generally means that another instance of this process was already running or is hung in the debugger.Current language:  auto; currently objective-c

解決方法: 可能是電腦記憶體問題引起,重新啟動電腦就可以解決。

假設重新啟動解決不了問題,那就是你剛剛修改的程式碼引起的問題。



3 、 錯誤資訊:
ios 5是除錯正常ios 6真機除錯的時候,出現例如以下錯誤:ld: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/mac4/Desktop/my desktop/My app/MyApp name 20:09:12  /MyApp name/ZBarSDK/libzbar.a for architecture armv7serror: linker command failed with exit code 1 (use -v to see invocation)
解決方法:在Xcode裡,點選相應的Target,然後點Build Settings。找到VALID_ARCHS,看裡面的是不是arvm7s,假設不是改成arvm7s就能夠了。

4 、 錯誤資訊:
 error: receiver type 'ViewController' for instance message does not declare a method with selector 'hideSearchBar:' [4]
ViewController 中沒有宣告一個方法選擇'hideSearchBar:
解決方法:
在ViewController .h 中宣告一下這種方法 “ hideSearchBar ”  就可以。

5、 錯誤資訊:當json從服務端請求時得到的字串。假設這樣寫的話,會報錯,';' after top level declarator
NSString *ss= @"{"recommend":"世界末日","
dogname":"機器人"}";  
解決方法:
就是,把   “   替換成  \"  就可以。
NSString *ss= @"{ \"recommend \": \"世界末日 \", \"dogname \": \"機器人 \"}";  

6 、 錯誤資訊:
 error: Existing instance variable '_datasource' for property 'datasource' with  assign attribute must be __unsafe_unretained

解決方法:
     id<ListViewDataSource> _datasource; 改為     __unsafe_unretained id<ListViewDataSource> _datasource:就可以

7 、 錯誤資訊:
error: No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

解決方法:
     targets ->build setting 下的 Build Active Architecture Only 設定 NO  就可以.

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>。

41,錯誤

Error launching remote program: failed to get the task for process   

解決方法:
把真機上的軟體。刪除,然後,clean 一下。又一次執行就能夠了。

        
42,真機除錯的時候,出現   
   這正常。可是不識別機器的。

解決方法:

把 , 
 設定為以上相相應的版本號就能夠了。

43,真機除錯的時候。出現   ios Broken pipe

解決方法:
:推出xcode
:斷開機器(iphone,ipad,ipod)連結
:重新啟動iPhone在聯接xcode,就能夠了。

iOS真機除錯中出現identity(The identity 'iPhone Developer)證書不匹配的問題

提示(null) error: could not read CFBundleIdentifier from Info.plist (null)

新建一個同名project。拷貝其plist檔案,將原project中的plist檔案替換掉就可以

這個問題怎麼解決呀  求解答  scanf函式輸入就會彈出 
圖片:螢幕快照 2013-11-12 下午12.40.18.png 
剛開始學習的人還在用xcode 寫c 
圖片:螢幕快照 2013-11-12 下午12.38.34.png 

44、-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "ViewController" nib but the view outlet was not...