1.ARC下是否有内存溢出等问题?

  答案:必须要担心啊,ARC也不是万能的。答案:必须要担心啊,ARC也不是万能的。这里主要是涉及到集合类的数据类型

       比如数组,我们定义了一个可变数组muarr1,然后把一个对象p1加到muarr1中,此时会对这个对象 retain一次,相当于retainCount+1,

      只有当这个数组removeObject:p1删除这个对象时、或者这个数组自己 muarr1=nil;了,或者这个数组removeAllObjects时,

它才会对这个对象或者里面所有对象release一次。

2.@property参数

  一:1)是否要生成set方法(若为只读属性,则不生成)

    readonly:只读,只会生成getter的声明和实现 
    readwrite:默认的,同时生成setter和getter的声明和实现

     2)多线程管理(苹果在一定程度上屏蔽了多线程操作) 
    nonatomic:高性能,一般使用这个 
    atomic:低性能,默认

     3)内存管理相关参数 
    retain: 对对象release旧值,retain新值(适用于OC对象类型) 
    assign: 直接赋值(默认,适用于非oc对象类型) 
    copy: release旧值,copy新值 
    验证assign如果作用在对象上,实际上就是直接赋值

     4)set和get方法的名称 
    修改set和get方法的名称,主要用于布尔类型。因为返回布尔类型的方法名一般以is开头,修改名称一般用在布尔类型中的getter。 
    @property(nonatomic,assign, setter=abc:,getter=haha)int age

  二、ARC下@property参数 
      ARC中的@property
      strong : 用于OC对象, 相当于MRC中的retain
      weak : 用于OC对象, 相当于MRC中的assign
      assign : 用于基本数据类型, 跟MRC中的assign一样
      copy : 一般用于NSString, 跟MRC中的copy一样 
      在ARC情况下解决”循环retain”的问题:
      @property一边用strong,一边用weak。

  三.1,getter=getterName,setter=setterName,设置setter与getter的方法名,除非你想自己取名,否则一般使用默认的名字即可。以免造成混乱。

  2,readwrite,readonly (只生成getter方法),设置可供访问级别的限制。
      2,assign,调用setter方法时直接赋值,不进行任何retain操作。
      3,retain,调用setter方法时,先release旧值,然后对赋予的新值执行retain,相当于一次指针的拷贝。
      4,copy,setter方法进行Copy操作,与retain处理流程一样,先release旧值,再Copy出新的对象,retainCount为1。其实是建立一个新的对象。
      5,nonatomic,非原子性访问,不加同步,多线程并发访问会提高性能。atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,

    造成   数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。

3.#import和@class的区别。 
    1.作用上的区别 
    #import会包含引用类的所有信息(内容), 包括引用类的变量和方法 
    @class仅仅是告诉编译器有这么一个类, 具体这个类里有什么信息, 完全不知

    2.效率上的区别 
    如果有上百个头文件都#import了同一个文件,那么一旦最开始的头文件稍有改动,后面引用到这个文件的所有类都需要重新编译一遍 , 编译效率非常低 相对来讲,

    使用@class方式就不会出现这种问题了

1.ARC下是否有内存溢出等问题 2.@property参数 3.#import和@class的区别的更多相关文章

  1. window下tomcat的内存溢出问题

    打开注册表:https://jingyan.baidu.com/article/49ad8bce09d6085835d8fa63.html Tomcat 内存溢出对应解决方式 Windows平台,使用 ...

  2. 【Java面试宝典】什么情况下会发生栈内存溢出?

    如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常. 如果虚拟机在动态扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常.

  3. ARC下需要注意的内存管理

    ARC下需要注意的内存管理 2016/04/03 · iOS开发 · 内存管理 分享到:1 原文出处: 一不(@luoyibu)    之前发了一篇关于图片加载优化的文章,还是引起很多人关注的,不过也 ...

  4. ARC下需要注意的内存问题

    之前发了一篇关于图片加载优化的文章,还是引起很多人关注的,不过也有好多人反馈看不太懂,这次谈谈iOS中ARC的一些使用注意事项,相信做iOS开发的不会对ARC陌生啦.这里不是谈ARC的使用,只是介绍下 ...

  5. 【深入Java虚拟机】之一:Java内存模型与内存溢出

    [深入Java虚拟机]之:Java内存区域与内存溢出 高速缓存模型如下: ----------------------------------------------------分割线-------- ...

  6. Java自动内存管理机制学习(一):Java内存区域与内存溢出异常

    备注:本文引用自<深入理解Java虚拟机第二版> 2.1 运行时数据区域 Java虚拟机在执行Java程序的过程中把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创 ...

  7. jmeter(二十二)内存溢出原因及解决方法

    jmeter是一个java开发的开源性能测试工具,在性能测试中可支持模拟并发压测,但有时候当模拟并发请求较大或者脚本运行时间较长时,压力机会出现卡顿甚至报异常————内存溢出, 这里就介绍下如何解决内 ...

  8. JVM探秘2--详解内存溢出OutOfMemoryError异常

    JVM运行时内存被划分成多个区域,而除了程序计数器之外,其他几个区都会出现OutOfMemoryError异常,主要原因就是对应内存区域的内存不足以再分配内存,一般要么是内存泄漏了要么就是内存参数设置 ...

  9. <转>jmeter(二十二)内存溢出原因及解决方法

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

随机推荐

  1. 【USACO】wormholes 【暴力】

    题意:给出2K个平面上的点,给它们一一配对,问有多少种配对方法使得存在从某个点一直向右走会陷在循环里(K<=6) 思路:由于k很小,配对方法的话暴力枚举,然后判环,判环时需要注意的是一条直线上的 ...

  2. msp430项目编程20

    msp430中项目---超声波测距系统 1.定时器工作原理 2.电路原理说明 3.代码(显示部分) 4.代码(功能实现) 5.项目总结 msp430项目编程 msp430入门学习

  3. 几道hash题

    1: UVa 10887 - Concatenation of Languages map 可以做 ,但是输入实在恶心,有空串之类的HASH模板: int Hash(char *s){   int s ...

  4. Linux下使用Curl调用Java的WebService接口

    其实只要是标准的WSDL的SOA接口WebService都可以用. 调用方式: 注意:上面的方式不包括加密或者登录的,其实SOA有一套完整的加密方式. curl -H'Content-Type: te ...

  5. 从头开始学Android之(一)——— Android架构

    从事Android开发已经两年多了,最近项目上特别清闲,刚开始时在闲暇的时候都不知道干嘛,整天混日子.有一天突然有个以前同学找到我,说要我帮忙做一个Android的需求,就是在后台截屏(涉及到服务以及 ...

  6. hdu 1385 Minimum Transport Cost(floyd &amp;&amp; 记录路径)

    Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  7. FPGA第一篇:SRAM工作原理

    一.SRAM概述 SRAM主要用于二级快速缓存(Level2 C ache). 它利用晶体管来存储数据.与DRAM相比,SRAM的速度快,但在同样面积中SRAM的容量要比其它类型的内存小. 大部分FP ...

  8. Python开发【1.1 基础语法】

    1.Python语言特点 优点: ①.丰富的库 ②.简单.开源 ③.支持面向对象编程 ④.解释性语言,无需编译 ⑤.高层语言,不用考虑内存问题 ⑥.可移植性好,不依赖于操作系统 缺点: ①.运行效率较 ...

  9. 嵌入式开发之davinci--- 8148/8168/8127 中的图像缩放sclr、swms之后出现图像视频卡顿、屏幕跳跃的问题

    ()问题原因 这边的case链路是这样的camera->sclr(yuv420sp cif)->dup->ipcframeoutm3<->ipcframerocess&l ...

  10. 目标跟踪之高斯混合模型---cv实现

    #include <stdio.h>#include <cv.h>#include <cxcore.h>#include <highgui.h>#inc ...