`
374016526
  • 浏览: 97735 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

iPhone开发常见的错误

阅读更多

  开始iPhone的Practise Project,其中有很多的问题,先记录起来,以免以后再犯:

 

      1.  EXC_BAD_ACCESS:

      发生场景1:一个指针转了两次,release了两次,其实只要release一次就可以。或者用指针时避免到处赋值。

      发生场景2:在一个View Controller A里动态加载另外一个View Controller B, B中无法使用UITableViewDelegate。

 

     2.  Debug里出现一批Leaking的警告错误:

     发生场景:使用了NSThread造成的。如下调用:

    [NSThread detachNewThreadSelector:@selector(scheduleTasktoTarget:self withObject:nil]; 

      那么在-(void) scheduleTask;中比如加入pool管理,即可防止出现此类错误:

      -(void) scheduleTask {

      //create a pool 

      NSAutoreleasePool *pool = [[NSAutoreleasePool allocinit];

         //...your code write here. 

      //release the pool;

      [pool release];

       }

 

     3. 在非主线程中,不要干创建UIView之类的活,而应该放到主线程去做,可以在非主线程里做UIView的显示更新等操作。

 

     4. 循环读取数据到数组时,请不要用以下方式(会报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后,提交时出现“125001 bogus filename ” 错误,什么path含有'.',目前尚未解决。

 

    6. 数据里定义一个实体对象,不能直接取这个对象的某个属性。

 

    7.当用以下代码跳转View的时候,在跳转的Controller里需要屏蔽initWithNibName 方法,否则View无法显示。

 代码

 

    8. 用sqlite时,出现Undefined symbols: “_sqlite3_free”, referenced from: , 类似错误,后查询发现,忘了把把sqlite的库文件引用来项目里。

    9. 关于超时:当用如下方式设置request的timeout时,发现根本不起作用,timeout依然是默认的240秒。碰到这类问题,可用NSTimer来控制是否超时,然后进行处理。

 NSMutableURLRequest *request = [[NSMutableURLRequest allocinitWithURL:[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中,实现该方法时注意- (UITableViewCell *)tableView:(UITableView *)tableView 

         cellForRowAtIndexPath:(NSIndexPath *)indexPath

           如果cell里有新添加的控件,只需要在第一次添加,每次滚动时改变控件里的显示值即可。

如:代码

 

   12. 在tableView的Cell中使用自定义的View时,如果tableView有删除新增动作时,table row的内容会显示混乱。

 

   13. 在UIViewController里添加子UIViewController时,不需要子UIViewController进行释放。 当把子View移除时,第一次会调用dealloc,此后每次add,remove都不再调用dealloc。估计是ios的缓存。

 

   14. UITableView为group类型时,要想收缩或者展开某一个section,需用一个取巧的方式,比如设置section的高度,然后再reload section。网上用beginEdit,和endEdit来实现,不过整个tableview都会刷新,感觉用户体验不太好。

 

 

原文引用:http://www.cnblogs.com/KiloNet/archive/2010/08/12/1798324.html

分享到:
评论

相关推荐

    iPhone开发实战

    《iPhone开发实战》一书,主要涵盖了iOS应用开发的核心技术和实战经验,旨在帮助开发者深入理解并掌握iPhone应用程序的开发流程。以下将详细阐述其中的知识点: 1. **Swift编程语言**:作为iOS开发的主要语言,...

    iPhone开发秘籍(第2版)

    《iPhone开发秘籍(第2版)》是一本专为iOS开发者量身打造的专业指南,旨在帮助读者深入理解和掌握iPhone应用程序的开发技术。这本教材的出现,为想要涉足或已经在iOS开发领域摸爬滚打的程序员提供了丰富的知识库,...

    计算器 iphone下开发的。 xcode

    总的来说,开发这款iPhone计算器应用涉及到的知识点包括:Xcode的使用、Objective-C或Swift编程、Interface Builder界面设计、UIViewController的事件处理、错误处理、应用测试与发布、以及Apple的App Store审核流程...

    unity3d+iphone开发资料

    《Unity3D与iPhone开发深度探索》 Unity3D是一款强大的跨平台游戏开发引擎,它以其易用性、高效性和广泛的平台支持而受到广大开发者喜爱。在本篇中,我们将深入探讨Unity3D用于iPhone应用开发的相关知识,涵盖从...

    iphone开发教程5

    《iPhone开发教程5》是斯坦福大学提供的一门专业课程,旨在教授学生如何构建和设计iOS应用程序,尤其针对iPhone平台。这门课程的重要性不言而喻,它代表了全球领先的教育机构对移动应用开发的深入理解和实践,为全球...

    iPhone开发相关资源

    ### iPhone开发相关资源知识点解析 #### 一、Xcode Quick Tour for iPhone OS 概述 在探讨iPhone开发的过程中,我们首先要关注的是Xcode Quick Tour for iPhone OS这一文档。该文档由Apple Inc.于2008年发布,旨在...

    iPhone开发资料个人整理

    这里整理的“iPhone开发资料个人整理”包含了一系列文档,旨在帮助开发者深入理解并熟练掌握iPhone应用的开发流程和技术要点。 1. **《iPhone开发必备.pdf》**: 这份文档可能包含了iPhone应用开发的基础知识,...

    iphone开发教程3

    【iPhone开发教程3:深入iOS应用开发】 在iOS开发领域,斯坦福大学的教程一直备受推崇,为全球的开发者提供了丰富的学习资源。本教程“iPhone开发教程3”将继续引领我们探索Apple的移动平台,深入了解iOS应用程序的...

    cocos2d-iphone游戏开发pdf

    《cocos2d-iphone游戏开发》是一本深入讲解如何使用cocos2d框架进行iPhone游戏开发的专业书籍。cocos2d是一个强大的2D游戏开发框架,它为开发者提供了丰富的功能,包括图形渲染、动画系统、物理引擎支持、音频处理等...

    iphone开发基础教程源代码

    本教程将深入探讨iPhone开发的基础知识,主要基于Apple的Swift编程语言,这是iOS应用开发的首选语言。源代码的提供旨在帮助初学者更好地理解理论知识的实际应用。 一、Swift编程语言 Swift是由Apple在2014年发布的...

    IPHONE开发环境搭建秘笈

    搭建iPhone开发环境是每个iOS开发者必须要经历的步骤,本文将详细介绍如何在MAC OS X系统上配置这个环境。首先,我们要了解的是,iPhone应用的开发离不开Apple的开发工具,主要是Xcode,它包含了iOS SDK(Software ...

    iphone开发基础教程

    《iPhone开发基础教程》是一本面向初学者的iOS应用程序开发指南,主要涵盖了iPhone应用开发的基础知识和关键技能。尽管我们目前只有第一、第三和第八章节的内容,但这些章节已经能够帮助读者建立对iOS开发的基本理解...

    ios开发教程,iphone开发教程,苹果开发教程

    在进入iOS开发的世界之前,首先我们要理解iOS是由Apple公司为iPhone、iPad以及iPod touch等设备打造的操作系统。iOS开发主要是使用Swift编程语言,以及Xcode集成开发环境(IDE)进行。这篇“iOS开发教程”涵盖了从...

    Iphone开发基础教程源码

    "Iphone开发基础教程源码"这一标题表明,这是一份用于教学目的的代码集合,包含了从零开始创建iPhone应用的基本步骤和实践案例。 描述中提到的《Iphone开发基础教程》源码,意味着这些代码是与一本详细的指南或教材...

    iPhone 开发应用程序

    《iPhone 开发应用程序》 在当今移动应用领域,iPhone应用程序的开发是一项不可或缺的技能。O'Reilly出版的《Learning iPhone Programming》(2010年3月版)是一本为初学者和有经验的开发者提供的全面指南,它深入...

Global site tag (gtag.js) - Google Analytics