zoukankan      html  css  js  c++  java
  • object-c基础学习 基于<iOS软件开发揭秘>

    一 oc基本数据类型

    1,id类型指向object-c对象的指针

     可以指向任意的对象类型,可以将任意消息传递给id,id不支持该消息时,会返回运行时异常,"unrecognized selector send to instance xxx"消息;

    常用于表示类的委托属性,例:@property  id<协议名> delegate;

    2,SEL类型,用来定义方法的关键字

    oc对象可以接受任何消息,但不一定能响应,通过方法:respondsToSelector()来判断对象是否能响应某个消息,保护代码,

    - (BOOL)respondsToSelector:(SEL)aSelector; ->NSObject类

    3,nil,NULL,NSNULL --空值

    nil用于对对象赋值,NULL给任何指针赋值,NSNULL用于集合操作

    nil对象可以接受消息,返回0值,不引起异常

    4.基本数据

    整数类型 int  4字节 , short 2byte , long 32位机4byte 64位机8比特 , long long 8字节,

    浮点型 单精度float 4字节 , 双精度double 8字节

        float a=6.7;

        NSLog(@"%f",a);  --->6.700000

        NSLog(@"%.6f",a); ----> 6.700000

        NSLog(@"%.10f",a); ----->6.6999998093

    布尔类型 bool 1字节

    BOOL 4字节

    字符类型 char

    枚举类型

    二 宏定义

    #define  定义函数,数字,字符串

    静态变量static int i=0;//局部静态变量作用在方法体内,等同于全局变量

    #pragma mark -用于分隔代码块

    #pragma mark NETWORK API

     

    三 内存管理

    内存管理的原则:谁创建 谁释放

    1.手动内存管理MRR manual retain release

    2.自动引用计数ARC Automatic Reference  Counting

    常见内存错误:1.内存泄露,对象没有在使用结束释放掉,造成常驻内存的现象;2.过度释放,对象还没有使用就被释放了,提前释放造成系统崩溃.

    能让引用计数增加的操作:

    1.alloc new retain copy 使对象的引用计数+1;//需要程序员自己手动release释放

    2.采用类方法创建对象,会使引用计数+1,由系统方法内部创建,由系统自己释放

    3.父控件加载子控件时,[self addsubView:xxx]让对象的引用计数+1

    4.对属性进行赋值时,会让对象的引用计数+1;

    5.向数组中添加对象,引用计数+1,删除数组中的对象引用计数-1;

    能让引用计数减少的方法:

    release  autorelease 使对象的引用计数-1;

    当引用计数为0时,自动调用对象类的dealloc方法,对象占用的内存被收回

    全局的对象在本类的dealloc方法中释放

    静态方法创建的对象,声明为全局后,对象会被系统自动释放,需保留一次引用计数,否则在别的方法中再使用该对象时会崩溃

    在方法体内创建的对象,可使用autorelease 加入自动释放池,在一定时期后释放

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    高德地图信息窗体轮播及多组坐标点添加
    移动端适配及px转rem
    css伪类样式覆盖
    vue-amap-marker相关问题,信息窗体及自定义图片的偏移问题
    echart自定义图例样式及统计图颜色相关
    ts学习笔记[枚举类型]
    从面试中查漏补缺
    百度编译器插入自定义内容和样式(转)
    .net的母版页相关
    几种Position属性的用法
  • 原文地址:https://www.cnblogs.com/lpjdbk/p/4676815.html
Copyright © 2011-2022 走看看