小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

iPhone開發(fā)錯誤集

 xue_dong5437 2010-09-27
  開始iPhone的Practise Project,其中有很多的問題,先記錄起來,以免以后再犯:
 
      1.  EXC_BAD_ACCESS:
      發(fā)生場景1:一個指針轉了兩次,release了兩次,其實只要release一次就可以?;蛘哂弥羔槙r避免到處賦值。
      發(fā)生場景2:在一個View Controller A里動態(tài)加載另外一個View Controller B, B中無法使用UITableViewDelegate。
 
     2.  Debug里出現(xiàn)一批Leaking的警告錯誤:
     發(fā)生場景:使用了NSThread造成的。如下調用:
    [NSThread detachNewThreadSelector:@selector(scheduleTask) toTarget:self withObject:nil];
      那么在-(void) scheduleTask;中比如加入pool管理,即可防止出現(xiàn)此類錯誤:
      -(void) scheduleTask {
      //create a pool
      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
         //...your code write here.
      //release the pool;
      [pool release];
       }
 
     3. 在非主線程中,不要干創(chuàng)建UIView之類的活,而應該放到主線程去做,可以在非主線程里做UIView的顯示更新等操作。
 
     4. 循環(huán)讀取數(shù)據(jù)到數(shù)組時,請不要用以下方式(會報Leaks):
while (sqlite3_step(statment) == SQLITE_ROW) {
            City *city  = [[City alloc] init];
           //取值
           [citys addObject:city];
            [city release];
            city = nil;

 
   而應該用如下方式:
 City *city;
while (sqlite3_step(statment) == SQLITE_ROW) {
            city  = [[City alloc] init];
           //取值
           [citys addObject:city];
            [city release];
            city = nil;

 
    5. Xcode 項目連上SCM后,提交時出現(xiàn)“125001 bogus filename ” 錯誤,什么path含有'.',目前尚未解決。
 
    6. 數(shù)據(jù)里定義一個實體對象,不能直接取這個對象的某個屬性。
 
    7.當用以下代碼跳轉View的時候,在跳轉的Controller里需要屏蔽initWithNibName 方法,否則View無法顯示。
 代碼
 
    8. 用sqlite時,出現(xiàn)Undefined symbols: “_sqlite3_free”, referenced from: , 類似錯誤,后查詢發(fā)現(xiàn),忘了把把sqlite的庫文件引用來項目里。
    9. 關于超時:當用如下方式設置request的timeout時,發(fā)現(xiàn)根本不起作用,timeout依然是默認的240秒。碰到這類問題,可用NSTimer來控制是否超時,然后進行處理。
 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:URI] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:5.0f];
 
    10.代碼檢查:
If you're using xCode 3.2 and above in the build menu you can just select build & analyze, and it will give you the results in the build results.
 
    11. UITableView中,實現(xiàn)該方法時注意- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
           如果cell里有新添加的控件,只需要在第一次添加,每次滾動時改變控件里的顯示值即可。
如:代碼
 
 
 

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多