任务中遇到的问题与解决办法

    完成了扫雷的编写,在这个过程中最痛苦的莫过于调试,对于IPhone程序的调试,xcode提供了很方便的调试,只需要在变量出鼠标不动

就可以观察变量的值和内存的地址。

    其中我遇到的问题1:以前的编译记录没有清理掉,导致他会按照以前的编译。从而程序出错,这个错误一般的调试一步一步走你就会发

现有可能你注释的地方也被执行了。一旦发现和你预想的不对劲,马上对编译清理。

 

    问题2:程序中我声明一个UIAlertView *alert,声明也是对了,但是一旦执行到[alert show],[alert release].时程序就会死掉并且

GDB提示EXC_BAD_ACCESS信息。这个问题很严重,最后上网查阅资料才得知EXC_BAD_ACCESS一般是由两种可能引起的。1是反复调用类似

[NSStringstringwithformat""]的语句,因为这个语句在最后会自动的将对象释放掉,所以一个对象被多次释放而你又在引用,这时GDB

就会收到这个所谓的EXC_BAD_ACCESS信号。第二种可能是可能你引用了已经被释放掉的对象,这时必须回到前面检查引用的对象是否还没被

初始化过或者已经被释放掉了。一旦遇到这个问题而你实在是找不到问题的所在时,你面临两种选择:1。重新写,重头到尾

严格控制好对象的初始化与释放。2。网上照的,调试EXC_BAD_ACCESS。设置NSZombiEnable这个环境变量方法。到Xcode中,左侧,excutable,点你的工程,绿色的那个,然后点上面panel中有一个info蓝色的叹号。到下面的对话框中。然后在Arguement,参数这个tab中,最下面,添加一个NSZombieEnable,设置为YES.这样编译器就会自动的对那个对象发送retain消息,从而该对象可以被引用了。最后问题解

决后,将NSZombieEnabled设置为无效即可。

 

 

   问题3:组件没有设置输出口,如何通过某个特定的属性来获得特定的组件?javascript中可以通过getArrayById来获得你想要的组件,

而在IPhone中可以通过[self.view viewAtTag:m];来获得Tag值为m的组件,返回的对象是id类型。因此进行强制转换是有必要的。利用这

个语句就可以获得任何你进行了特定标记的组件了,然后你就可以进行各样的操作了。

 

  问题4:如何更改某个组件的某些属性?设声明了一个UIbutton *button,开始调用点操作如button.titlelable 来重新设置按钮的标签值,这样的办法在这个按钮设置为UIoutlet时会有用,这时titlelable是button的内部参数,所以这个方法可以成功,但是如果没有设置为外部接口的时候,这个办法就行不通了。此时怎么办?这时就可以调用settitle方法。这个方法可以直接设置组件的标签,而不会出现是否为内部属性的问题了。

   这几个问题就是我这次任务中遇到的几个认为很棘手的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值