• objective-c学习笔记


    Objective-c学习笔记

    1.使用#import导入头文件,一般osx命令行开发使用<Foundation/Foundation.h>,图形界面开发使用<Cocoa/Cocoa.h>

    2.OC中字符串不再是数组,而是变成了NSString类型的对象,凡是涉及到字符串的都是对象,另外,当静态字符串赋值的时候,应该要使用@做标识,例如@“helloworld”

    3.OC中的真假为BOOL类型,同时真为YES假为NO,占八位,系统依靠最低位来确定,最低位为0为NO,最低位不为零,为YES,所以,比较BOOL的时候,应该和NO比较

    4./tmp为系统缓存目录,系统重启的时候被清空

    5.id类型是oc的通用指针,该类型可以指向任何对象,但是最好不要滥用 

    6.oc的接口定义模式如下

    @interface

    {

    @属性的访问权限

    属性值

    }

    -(方法的返回类型)方法名:(参数1的类型)参数名,(参数二的类型)参数名;

    @end

    7.oc的接口实现如下

    @implemention

    -(方法的返回类型)方法名:(参数1的类型)参数名,(参数二的类型)参数名

    {

    函数实现/方法实现

    }

    @end

    8.OC调用方法使用中括号,例如 [实例指针  方法名:参数1,参数2]

    9.在类的实现中,可以直接访问类的实例变量,这是因为直接访问的时候OC编译器隐藏传递了一个参数self

    10.最简单的生成新实例的方式为[类名 new](后面不推荐使用)

    11,OC本身不支持多继承,但是可以用委托机制来实现多继承

    12.在子类中想要调用父类的方法可以使用super关键字,例如 [super init]

    13.定义接口的时候可以指明继承的父类,例子如下

    @interface 接口名:父类名

    @end

    14.使用NSLog可以输出,类似于printf

    15.NSLog可以打印对象,适应%@参数即可,这样系统会自动调用该对象的description方法

    16.属性的存取方法,存方法使用set+属性名 取方法直接使用属性名,假设属性为xxx,则为

    -(void)setxxx:(id)xxx -(id)xxx;

    17.oc使用.m格式的源文件和.h格式的头文件,通常申明放在.h文件,实现放在.m文件

    18.@class 类名 该关键字一般表示导入类,在.h文件中使用的比较多,不想包含头文件的时   候使用该关键字

    19.范围结构体 NSRange ,表示数字的起点和大小,参数均为无符号整形,赋值有函数NSMakeRange()函数

    20.坐标结构体CGPoint,参数均为浮点型,表示坐标,CGPointMake快速赋值

         图形结构体CGSize 参数为浮点型,CGSizeMake快速赋值

         矩形结构体CGRect 含有两个结构体类型的参数,快速赋值为CGRectMake

    21.字符串类NSString的方法

    stringWithFormat 创建新字符串

    length 获取字符串个数

    isEqualToString 字符串比较

    compare 字符串比较

    NSCompareResult 比较结构枚举,取值包括NSOrderAscending 等三个

    hasPrefix 检测字符串是否以指定字符串开头

    hasSuffix 检测字符串是否以指定字符串结尾

    rangeOfString 检测字符串中是否还有指定字符串 没有返回的NSRange中location为NSNotFound

     

    22.NSString是运行时不可变的,如果需要运行时可变的字符串需要NSMuteableString

    stringWithCapacity 指定初始化容量

    appendString 附加子串

    appendFormat  附加格式化字符串

    deleteCharactersInRange 删除字符串中指定位置的字符

    因为NSMuteableString是NSString的子类,所以NSString的函数NSMuteableString 都能用

     

    22.NSArray

    NSArray中可以放入任意类型的对象,但是不能存放原生数据类型

    arrayWithObjects 初始化,指定原始数据列表

    count 获得元素个数

    objectAtIndex 获取特定位置的元素

    componentsJoinedByString 使用特定字符串链接所有元素成为一个新的字符串返回

     

    22,可变数组NSMutableArray

    arrayWithCapacity 指定初始化容量

    addObject 在末尾添加对象

    removeObjectAtIndex 移除指定位置的元素

    objectEnumerator 获取数组对象的枚举器

     

    23.枚举,使用枚举器

    while(id thing = [enum nextobject])

    {

    //dosomething

    }

    24.快速枚举

    10.5之后的新特性,while(NSString* str in array){//dosomething}

     

    25.NSDictionary字典

    dictionaryWithObjectsAndKeys 创建键值对,初始化对象

    objectForKey 通过键获取对象

     

    26.可变字典NSMutableDictionary

    dictionaryWithCapacity 初始化可变字典,指定容量

    setObject  forkey 添加键值对

    removeObjectForKey 删除键值对

     

    27.对于NSString和NSArray,不要继承,最好使用复合

     

    28.NSNumber数值类

    用于将原生数据类型装箱

    numberWithChar  numberWithInt numberWithFloat numberWithBool 装箱

    charValue intValue floatValue boolValue stringValue 拆箱

     

    29.NSNumber其实是NSValue的子类,NSValue可以封装任何值,

    valueWithBytes 指定数据长度和数据类型就能装箱

    getValue 用于提取数值

     

    30.NSNull

    nil的装箱数据结构,只有一个方法null

    31.oc的方法分为两种,分别是实例方法和类方法,使用-定义的是实例方法 使用+定义的方法是类方法,类方法在没有实例的时候可以直接通过类名调用,如init方法,如下

    类方法 +void init:(int)a,(int)b;

    实例方法 -void init:(int)a,(int)b;

     

  • 相关阅读:
    C#获取当前堆栈的各调用方法列表
    JS | 你真的会用 console.log 吗?
    antd form表单自定义验证
    C# 如何去空格
    CSS 网络安全字体
    Surface Book 3真是太快了
    Waypoints
    es6 去掉空格_js去除字符串中的所有空格(包括前后,中间存在的所有空格)
    Facebook 新一代 React 状态管理库 Recoil
    独处时必看悬疑推理剧大全
  • 原文地址:https://www.cnblogs.com/dengxiaojun/p/4582066.html
Copyright © 2020-2023  润新知