当前位置:  编程技术>移动开发
本页文章导读:
    ▪内存储器管理小记        内存管理小记 object-c的内存管理还真是个头痛的问题,看了蛮多的文章讨论,还是免不了犯错,最近小小的实验了一下,做个小记. view的retiancount变化:alloc为1,被addSubview加1,removeFromSuperView减1,而cont.........
    ▪ 美化listview时遇到的有关问题        美化listview时遇到的问题      在android开发中,listview的默认背景颜色是黑色的,所以在UI设计中,肯定会对它进行美化处理,尤其是在游戏开发中。最近在做用户聊天框的时候遇到一个这样.........
    ▪ 怎么去掉WTK中的联网提示       如何去掉WTK中的联网提示 在写J2ME 程序时,模拟器每次都在程序联网时弹出提示,要你确认。这是很烦的。去掉这个提示也很容易。 在NetBeans 6.9 中, 1、  在项目窗口中右键你的项目 2、  .........

[1]内存储器管理小记
    来源: 互联网  发布时间: 2014-02-18
内存管理小记

object-c的内存管理还真是个头痛的问题,看了蛮多的文章讨论,还是免不了犯错,最近小小的实验了一下,做个小记.

view的retiancount变化:alloc为1,被addSubview加1,removeFromSuperView减1,而controller有点不同在于它的view被addSubview,它本身并不会加一,比如:

lab=[[UILabel alloc] init];

[lab setFrame:CGRectMake(120, 100, 80, 20)];

NSLog(@"after alloc---%d",[lab retainCount]);

[self.view addSubview:lab];

NSLog(@"after addSubview---%d",[lab retainCount]);


[lab removeFromSuperview];

NSLog(@"after remove---%d",[lab retainCount]);

[lab release];

NSLog(@"after release---%d",[lab retainCount]);

 

控制台的输出:

2010-11-06 16:07:23.145 viewTest1[1430:207] after alloc,test count is 1

2010-11-06 16:07:23.147 viewTest1[1430:207] after alloc---1

2010-11-06 16:07:23.147 viewTest1[1430:207] after addSubview---2

2010-11-06 16:07:23.148 viewTest1[1430:207] after remove---1

2010-11-06 16:07:23.148 viewTest1[1430:207] after release---1

2010-11-06 16:07:23.149 viewTest1[1430:207] after addSubview,test count is 1

 

标记test的是controller,lab在这里是实例变量,用于测试dealloc,里面用了remove和release,使得lab在这里retainCount变为0,在alloc所在的函数里不显示为0,还是显示为1(奇怪...)

再加几个NSLog,得到

2010-11-06 16:40:23.482 viewTest1[1654:207] fisrt---0

2010-11-06 16:40:23.483 viewTest1[1654:207] after alloc---1

2010-11-06 16:40:23.484 viewTest1[1654:207] after addSubview---2

2010-11-06 16:40:23.484 viewTest1[1654:207] after remove---1

2010-11-06 16:40:23.485 viewTest1[1654:207] after release---1

刚开始显示0,因为lab是nil,[nilretainCount]输出为0.

在类的dealloc里面lab的retainCount已经为0,调用它的任何函数都会BAD_ACCESS,包括[lab retainCount]和[lab release],所以dealloc里实例变量release之后最好nil一下,因为对nil的任何操作都不会BAD_ACCESS,在dealloc里也就可以release了.

关键还是alloc和release的配对,对于不配对的情况赋值nil可以避免错误

似乎是挺简单的东西,但还是得注意,细节决定成败

 

PS:在mac下排版还真不方便将就将就吧..

1 楼 qichunren 2010-11-17  
好,谢谢。

    
[2] 美化listview时遇到的有关问题
    来源: 互联网  发布时间: 2014-02-18
美化listview时遇到的问题

     在android开发中,listview的默认背景颜色是黑色的,所以在UI设计中,肯定会对它进行美化处理,尤其是在游戏开发中。最近在做用户聊天框的时候遇到一个这样的问题,我把显示用户聊天记录的listview背景设置成白色的,看起来没有什么问题,但是当我滚动滚动条的时候,有内容的listitem全部变成黑色的了,效果很不好。

     google了一下,原因是:默认的ListView的背景是透明的,而ListView的背景是固定不变的,所以当我滚动滚动条的时候,会实时地去将当前每个Item的显示内容跟背景进行混合运算,所以android系统为了优化这个过程用,就使用了一个叫做android:cacheColorHint的属性,在黑色主题下默认的颜色值是#191919,所以就出现了刚才那样的效果。

     解决的办法:如果你只要换背景颜色,就只需将android:cacheColorHint属性设置成你想要的颜色就行了。如果需更换背景图片,则需使用android:background="@drawable/bg"属性,并把android:cacheColorHint设置成(#00000000)透明的就ok了。

1 楼 dsy163 2011-07-11  
请问 如果我想把list改为  白底 黑字的话, 需要在layout的 xml中 怎么设置呢??
2 楼 zhoujianghai 2011-07-11  
dsy163 写道
请问 如果我想把list改为  白底 黑字的话, 需要在layout的 xml中 怎么设置呢??

看看这篇文章http://zhoujianghai.iteye.com/blog/813868
你可以把listview的背景设置成白色或者白色的底图,然后listview里显示的textview字体设置成黑色

    
[3] 怎么去掉WTK中的联网提示
    来源: 互联网  发布时间: 2014-02-18
如何去掉WTK中的联网提示

在写J2ME 程序时,模拟器每次都在程序联网时弹出提示,要你确认。这是很烦的。去掉这个提示也很容易。

在NetBeans 6.9 中,

1、  在项目窗口中右键你的项目

2、  选择属性,再点“运行”,将安全域设为 Maximum。就可以了。如图

 

 

还有一个方法,双击打开你安装在电脑上的WTK

点击偏好,点到“安全“,同样,设为Maximum就可以了。如图:

 

 

来源:http://blog.csdn.net/nairuohe/archive/2010/11/02/5982376.aspx


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3