20140926个人日志

来源:互联网 发布:mono软件 编辑:程序博客网 时间:2024/06/18 16:03

每日一结

    今天完成:

1. tableView和步行路线交互显示问题,选择对应的行,则在地图页面显示相应点的详细信息;

2. 在mapView上添加按钮,使得路线的结点(气泡信息)能自由的移动;

3. 代码的优化,解决内存泄漏的问题。牢记,谁申请,谁释放!有alloc申请了才释放,不能过度释放。

    一个比较容易出错的地方,如下面代码:

             NSArray *array = [[NSArrayalloc] init];

             array = otherArray;

本来只是赋值,所以只需定义并赋值即可,并不需要alloc申请内存操作!

       事实上,这样操作是无效的!因为申请的内存给array对象后,在给 array 赋值时,array又指向了其它地方,alloc分配的地址完全无效。如果因为这样 alloc 后,后面又 release 掉了,那就会造成过度释放的问题,很容易让程序崩溃。       

       只须  NSArray *array = otherArray;后边也不用 [array release];

       谁负责申请 otherArray 谁负责释放 otherArray 即可。


4.如果内存泄漏问题比较隐晦,不容易找到,可考虑使用“僵尸对象”,即让释放掉的内存暂时不释放,如此可定位至错误的地方。(用的还不是很熟练!)具体操作如下:

       Product -> Scheme -> Edit Scheme

 弹出一个对话框。侧边选择Run 项目名,横向选择 Diagnostics, 勾选 Enable Zombie Objects;

然后运行即可。


5. Calayer错误是指UI界面的错误,只须考虑UI界面上的元素即可。

6. 完成 Python 面向对象高级编程的概览学习,熟悉__slots__ 、@property 、多重继承 定制类 、使用元类的使用规则

ps:将要学习 Linux 终端命令,《鸟哥的私房菜》, 再次回顾 gitHub

0 0
原创粉丝点击