`
374016526
  • 浏览: 95413 次
  • 性别: 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

分享到:
评论

相关推荐

    Windows7上使用VMWare搭建iPhone开发环境

    我们都知道开发iPhone等ios平台的移动应用时需要使用Mac本,但是Mac本都比较昂贵,所以我们可以采用Windows7上利用VMWare安装Mac操作系统的方法来模拟ios开发环境,达到降低成本的目的。

    iphone3开发基础教程

    14.2.3 错误通知 362 14.3 尝试使用Core Location 363 14.3.1 更新位置管理器 367 14.3.2 确定移动距离 367 14.4 小结 368 第15章 加速计 369 15.1 加速计物理学 369 15.2 访问加速计 370 15.2.1 UIAcceleration ...

    iPhone 开发笔记实录(代码讲解)

    收集了IOS开发过程中常见的错误和需要注意的要点。

    让不懂编程的人爱上iphone开发io7版

    网上有的资源下载解压错误或篇数不完整,这个资源是完全版。让不懂编程的人爱上iphone开发最新ios7版教程,让毫无基础的的普通人领略ios开发的魅力

    iPhone应用开发从入门到精通代码

    iPhone应用开发从入门到精通作者:杨帆 郑青青 王凤筱 编著前 言入 门 篇第1章 iPhone OS介绍 21.1 iPhone OS预览21.1.1 iPhone OS的发展历史21.1.2 iPhone OS的外观31.1.3 多任务特性31.1.4 不支持的技术...

    iPhone多视图开发案例图文步骤

    iphone/ipad开发中 多个视图切换是一个难点和重点。最初第一次试做 总是出现这样或者那样的问题。看书上介绍的步骤,要么很罗嗦,要么一笔带过,偶尔再出点错误,让你郁闷死!~我狂做50遍之后,感觉一切都很轻松,...

    iPhone和iPad的企业应用开发之错误处理

    到目前为止,我们所介绍的iPhone与其他系统的网络交互都是基于一切正常这个假设。本章将会放弃这个假设,并深入探究网络的真实世界。在真实世界中,事情是会出错的,有时可能是非常严重的错误:手机进入与离开网络、...

    创建一个简单的 iOS 5 iPhone App 教程

    制作这个应用程序的同时,我们将介绍一些iPhone开发中最常用的主题: • iPhone 开发者入门 • 如何使用模型对象在您的应用中存储数据 • 如何使用 Table Views – 包括添加与删除行 • 如果为表行创建一个详情视图 ...

    Aptana_Studio_Setup_2.0.5

    ● 1、AJAX开发环境 ● × HTML/JavaScript/CSS编辑器 ● × prototype/dojo等常见AJAX类库集成和提示 ● × JSON编辑器 ● 2、Adobe AIR开发环境 ● 3、Apple iPhone开发环境 ● 4、Ruby on Rails开发环境 ● 5、...

    Aptana 非常不错的Javascript 编辑开发工具

    *Adobe AIR与iPhone开发工具 其主页上还提供如何使用该开发工具的视频。 Aptana 下载主页://www.aptana.com/ 带有语法提示,支持WEB标准 一款非常优秀的Javascript(AJAX) 开发工具:Aptana。应为它实在太棒了...

    Android移动应用开发(第3版)卷Ⅰ基础篇 (Shane Conder, Lauren Darcey) PDF扫描版

    Shane Conder ShaneConder拥有丰富的开发经验,在过去的10年中,他把主要精力集中在移动和嵌入式开发领域,迄今已设计并开发了基于Android、iPhone、BREW、Blackberry、J2ME、Palm和WindowsMobile的诸多商业软件。...

    safari调试iOS app web页面的步骤

    当下移动端开发过程中大量使用前段H5、js等等技术,而这些web页面的调试在Xcode控制台中不太明了,经常我们移动app运行了就是方法,但是不能显示响应的效果,这时候或许就是已经报错了,但是我们在Xcode控制台是看不...

    tabi-proxy:适用于iPhone + Mac OS X零配置代理的SOCKS5代理服务器

    需要iPhone开发许可证 不是真正的网络共享 可能包含错误。 请参阅“已知错误”部分。 如果出现问题,并且代理应用程序意外退出,请再次启动它,它将还原进行任何更改之前的代理配置 代理在系统控制台上进行了大量...

    在您的iPhone上以交互方式学习Swift。-Swift开发

    Unwrap是一款可帮助您更快更有效地学习Swift的...学习了一些进度后,您就可以参与一系列练习活动,这些活动使您可以通过点击,拖动或键入代码,查找错误,预测程序输出等来编写代码。 每天都有挑战考验您的整体语言知识

    Unsplash_with_storyboard_tutorial

    适用于大学生的iPhone应用开发课程Jason解析错误处理-Swift UIkit基础教程(2020)-解析json错误处理 适用于大学生的iPhone应用程序开发课程自定义切换按钮-Swift UIkit基本教程(2021)-自定义动画切换按钮。

    tabula:适用于 iPhone 的 Dvach。 开发停止

    NB Tabula 开发停止,设计和部分代码将在 现在的目标 1 是在将应用程序发布到应用程序商店之前完成应用程序。 附近特色: 更改董事会列表 修复严重错误 这还不够,但足以发送 Tabula 进行审核。 测试版注册: : ...

    AppSales-Mobile:App Sales允许iPhone和Mac App Store开发人员从iTunes Connect下载和分析其每日和每周销售报告

    AppSales允许iOS和Mac App Store开发人员从iPhone上的iTunes Connect下载和分析其销售报告。 ##特征从iTunes Connect自动下载每日和每周销售报告堆叠的条形图可一目了然地查看所有销售在世界地图上显示您的销售按...

    通过iTunesMobileDevice服务来获取IPhone信息的demo-易语言

    太新太旧的设备读取某些功能存在着有误的问题(Iphone11系列读取颜色会返回空值0/1 ,Iphone5s的CPU架构号也会返回错误),其他没测可自行尝试 2 .整体流程是:1.调用 AMDeviceNotificationSubscribe ,函数用来及时反馈...

    MVP模式简单案例

    Retrofit+MVP模式 最最简单的案例 若有错误请指出

Global site tag (gtag.js) - Google Analytics