在线咨询:
酷蜂科技在线客服 酷蜂科技在线客服
咨询热线:186-2071-6515
您的位置:首页 > 管理与技术 > APP学堂 >

IOS APP开发主要遇到几点问题

浏览    评论来源:广州酷蜂科技 专业手机    作者:www.kubikeji.com    时间:2013-09-14 16:20
[摘要]最近安卓APP开发,IOSAPP开发公司有很多,但是IOS仍然会存在很多问题,下面小编主要为APP开发者讲解5个点:

  最近安卓APP开发IOSAPP开发公司有很多,但是IOS仍然会存在很多问题,下面小编主要为APP开发者讲解5个点:

  (1)任何一个UIView如果没有被remove掉,即使它被release掉了,依然占用着大量内存。UIView需要remove,数组需要清空;对于一个拥有大量subView的UIView,要最好使用一个for循环来执remove操作

  (2)隐藏内存泄漏,比如一个UIView,fatherView,上面有许多的子视图,如果有释放内存的时候仅仅释放fatherView的内存(对其执行remove,release操作),那么此处必定内存无法回收。即使你的subviews已经release了,retainCount=0,但是并没有remove,所以这也是内存泄漏。

  (3)下面说说alloc、retain、copy,见到这三个不用说必须release。alloc和retain都会造成计数器

  ClassA *obj1 = [[ClassA alloc] init];// obj1的计数器加

  ClassA *obj2=obj1;                       // obj1的计数器再次加1为

  [obj2 retain];                                //  这样写计数器加1为

  [obj1 release];                              //  obj1的计数器减1为

  [obj2 release];                              //  这里也可以写成[obj1 release] ,基于谁retain谁释放原则最好不这么写

  说下copy深拷贝和retain浅拷贝的区别

  ClassA *obj1 = [[ClassA alloc] init]; // obj1计数器j加

  ClassA *obj2 = [obj1 copy]            //  obj1计数器不加1,obj2计数器加

  [obj1 release]                                 // obj2计数器为0,释放时必须这样写了

  [obj2 release]                                 // obj1计数器为

  如上,这里注意释放对象及释放顺序

  (4)关于属性声明,首先说说

  @property:你可以理解为系统给你写了get/set方法

  -(void) setName:(NSString *)name{    if (_name != name) {        [_name release];        _name = [name retain];//这行就是下面解释的属性中你定义的属性起到的作用

  readonly属性: 只能读,不能写;

  assign属性: 是默认属性,直接赋值,没有任何保留与释放问题;

  retain属性: 会增加原有对象的引用计数并且在赋值前会释放原有对象,然后在进行赋值;

  copy属性: 会复制原有对象,并在赋值前释放原有对象,然后在进行赋值;

  atomic、assign、readwrite这三种属性是默认的,可不写,基本上所有@property都是noatomic的,也就是非线程安全的

  除了基本类型和delegate用assign,其他都用retain,有因为assign是默认属性,所以类似

  可以直接写成

  说道属性顺便说下self.属性 = 值,self set属性 = 值,属性 = 值,这三种赋值的区别

  第一种和第二种方式都会造成计数器加1,需要release掉,而第三种直接赋值给属性可以称为弱引用没有计数器加1。如果释放掉后会造成n内存释放过度。

  (5)[(UIButton *)[self.view viewWithTag:123] removeFromSuperview]和[[self.view viewWithTag:123] removeFromSuperview]效果是不一样的,通过tag取出来的对象需要类型转换才能正确移除掉

本文标签:
您的昵称:验证码:
点击我更换验证码
*如果您有其他想法和建议,请您在首页留言或在上面评论框附上您的姓名、联系电话或QQ,我们专业的售前团队将很快与您联系。
热门点评()

相关内容

推荐阅读

  • 软件开发APP制作中UI界面的自适应布局
    自适应布局是软件开发APP制作中至关重要的一项技术,可以确保APP在不同设备和屏幕尺寸上都能提供最佳的用户体验。
  • app原生开发和非原生开发有什么区别?
    选择app原生开发还是非原生开发取决于项目需求、时间安排、开发团队的技术栈和目标用户等因素。
  • 在APP开发后ASO(应用商店优化)的技巧和策略
    ASO(应用商店优化)是指针对应用商店的搜索引擎优化,提高应用在应用商店搜索结果中的排名和曝光率。
  • 开发类似许鲜水果电商APP需要多少钱
    在传统的水果行业运营中,商家需要承担庞大的宣传费用、以及产品的损耗费用等,水果电商APP开发不仅符合消费者的消费需求,而且能够帮助商家扩大营销渠道降低损耗,为此生鲜类
  • 开发B2C商城APP有什么好处
    广州B2C商城APP开发公司专家称,智能手机的广泛运用,在一定程度上改变了人们的生活、工作习惯。一些触觉灵敏的商家及时捕捉到APP开发背后隐藏的商家,将移动端的元素带入经营中
  • 戏曲APP软件开发有效推广戏曲文化
    酷蜂科技专业的文化类APP开发团队,戏曲APP软件开发打造戏曲行业资讯、相关演出服务、戏曲交流等功能板块有效推广戏曲文化,解决戏曲行业宣传难,花费多等问题,让戏曲文化在传

最新评论