首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Objective-C中的集合类

下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习...在Objective-C中的集合类中主要包括不可变的数组--NSArray,  可变的数组--NSMutableArray,   不可变的字典--NSDictionary,    可变的字典--NSMutableDictionary...NSArray             数组是有序对象的集合,用来存储对象的有序列表,在OC中数组中必须存的是对象,不能是基本数据类型,若想存入基本数据类型,必须先把数据类型转换成对象,然后再存入集合类中...NSArray也是OC中的一个对象,使用NSArray也需要进行实例化,前面的博客在类的初始化中提到了便利初始化函数和便利构造器,在NSArray中也少不了这两样东西我们可以通过NSArray的便利初始化函数或者便利构造器进行...在OC中给我们提供啦一个类专门来把基本数据类型封装成对象,这个类就是NSNumber.     ​    ​    ​1.

1.1K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Objective-C Runtime:深入理解类与对象

    其实最主要的表现就是Objective-C将很多静态语言在编译和链接时做的事情放到了运行时去做,它在运行时实现了对类、方法、成员变量、属性等信息的管理机制。...与之对应实现的就是Objective-C的Runtime机制。 Objective-C的Runtime目前有两个版本:Leagcy Runtime和Moden Runtime。...同时,在Objective-C语言中,类本身也是一个对象,类作为对象时isa指针指向元类(Meta Class),后面会详解; super_class:指向该类的父类,如果该类已经是根类(NSObject...中类变量的信息,一般认为Objective-C不支持类变量。...注意,返回的列表不包含父类的成员变量和属性; Objective-C不支持往已存在的类中添加实例变量,因此不管是系统库提供的类,还是我们自定义的类,都无法动态添加成员变量; 当通过运行时来创建一个类的时候

    1.3K40

    objective-C 的OOP(上)--类定义、继承及方法调用

    kBlueColor } ShapeColor; //定义“几何形状矩形区域”结构 typedef struct { int x,y,width,height; } ShapeRect; 然后再定义基类Shape...,注意:在obj-C中,定义一个类通常分成二部分,一部分是".h"的文件,用来申明类有哪些成员(也称为类的定义文件,类似于接口),另一部分是".m"的文件,用来提供具体实现 Shape类的申明部分如下:...All rights reserved. // #import "Shape.h" //注:因为Circle类不需要扩展其它方法,所以这里也只要一个空壳 @interface Circle : Shape...bounds.x,bounds.y,bounds.width,bounds.height,[super getColorName:fillColor]); } @end 注:上面展示了在obj-C中如何调用父类的方法...同时我们也看到了,创建一个类的实例用“[类 new]”来完成。 最后附上文件结构图:

    1.2K80

    【Objective-C】05-第一个OC的类

    说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C。...如果你还没有编程经验,或者对Objective-C、iOS开发不感兴趣,请忽略。学习本专题之前,建议先学习C语言专题。 OC是一门面向对象的语言,因此它也有类、对象、静态\动态方法、成员变量的概念。...一、语法简介 1.类 在Java中,我们用1个.java文件就可以描述清楚一个类;在OC中,一般用2个文件来描述一个类: 1> .h:类的声明文件,用于声明成员变量、方法。...二、用Xcode创建第一个OC的类  1.右击项目文件夹或者文件,选择"New File" ? 2.选择Cocoa的"Objective-C class" ? 3.输入类名和选择父类 ?...* Student.h是类的声明文件,Student.m是类的实现文件 * 默认情况下,这2个文件的文件名跟类名一致 * 编译器只会编译.m文件,并不会编译.h文件 三、第一个类的代码解析 1.Student.h

    896100

    Objective-C笔记

    头文件包含类,类型,函数和常数的声明。 .m 源代码文件。这是典型的源代码文件扩展名,可以包含 Objective-C 和 C 代码。 .mm 源代码文件。...带有这种扩展名的源代码文件,除了可以包含Objective-C和C代码以外还可以包含C++代码。仅在你的Objective-C代码中确实需要使用C++类或者特性的时候才用这种扩展名。...class) 类是面向对象语言中最重要的一个概念,Objective-C同样支持类。...发送给对象的所有消息都会动态分发,这样有利于实现Objective-C类的多态行为。...不过在Objective-C 2.0引入了新的语法以声明变量为属性, 并包含一可选定义以配置访问方法的生成。属性总是为公共的,其目的为提供外部类访问(也可能为只读) 类的内部变量的方法。

    95840

    Objective-C 入门笔记

    简介 建立在C语言之上,可以混编C/C++代码,编写一个类需要二个文件: .h的头文件 .m的实现文件(如果是C/C++混编文件,文件后缀为.mm) 既然有头文件,所以很多人会拿它与C++进行类比,它最重要的三个特性是...因为OC不提供命名空间,所以类命名上要特别注意了,不然很容易覆盖/冲突而导致很多未知的问题。...苹果定义的类,一般类名最前面有二个字母,比如NSObject中的NS,UIKit中的UI,所以为了避免跟苹果定义的类产生冲突,自定义的类以三个字母开头,比如BNR这样 2) 方法的定义和调用 ?...方法分二种:实例方法、类方法,如上图所示,区别类方法和实例方法,主要是它的声明符:-、+ + (返回值类型) 类方法名 - (返回值类型) 实例方法名,需要先创建后再使用,比如这样:[[[Hello alloc...、NSInteger、NSNumber,定义:NSString *myStr; 更多关于Objective-C的学习资料,推荐 Ry’s Objective-C Tutorial

    66230

    Objective-C Runtime 详解

    与Runtime交互 Objc 从三种不同的层级上与 Runtime 系统进行交互,分别是通过 Objective-C 源代码,通过 Foundation 框架的NSObject类定义的方法,通过对 runtime...在Objective-C Runtime Reference中有对 Runtime 函数的详细文档。...,类名,成员变量,方法,缓存,还有附属的协议 PS:OBJC2_UNAVAILABLE之类的宏定义是苹果在 Objc 中对系统运行版本进行约束的黑魔法,为的是兼容非Objective-C 2.0的遗留逻辑...,但我们仍能从中获得一些有价值的信息,有兴趣的可以查看源代码 Objective-C 2.0 的头文件虽然没暴露出objc_class结构体更详细的设计,我们依然可以从Objective-C 1.0 的定义中小窥端倪...而Objective-C Runtime中使用了Non Fragile ivars来避免这个问题 使用Non Fragile ivars时,Runtime会进行检测来调整类中新增的ivar的偏移量。

    1.2K20

    Objective-C Runtime详解

    Objective-C Runtime 最近在学习Runtime的知识,恰巧发现了这篇博客《Objective-C Runtime》,在此基础上,进行了些许补充说明,如有错误或其他想法,欢迎提出交流。...在一些计算机语言的原理中,一个类和元类层次结构可以更自由的组成,更深元类链和从单一的元类继承的更多的实例化的类。Objective-C 的类方法 是使用元类的根本原因,在其他方面试图在隐藏元类。...而Objective-C Runtime中使用了Non Fragile ivars来避免这个问题 使用Non Fragile ivars时,Runtime会进行检测来调整类中新增的ivar的偏移量。...参考链接 原文:Objective-C Runtime Apple官方文档:Objective-C Runtime Programming Guide Apple开源代码:Objective-C Runtime...源码 Objective-C runtime之运行时的基本特点 Understanding the Objective-C Runtime 最后,附上Runtime的基本使用:《Objective-C

    1.8K60

    Objective-C RunLoop 详解

    CFRunLoopObserverRef 其中 CFRunLoopModeRef 类并没有对外暴露,只是通过 CFRunLoopRef 的接口进行了封装。...RunLoop 有5个类的关系 一个 RunLoop 包含若干个 Mode,每个 Mode 又包含若干个 Source/Timer/Observer。...RunLoop 的实际应用举例 AFNetworking AFURLConnectionOperation 这个类是基于 NSURLConnection 构建的,其希望能在后台线程接收 Delegate...AsyncDisplayKit AsyncDisplayKit 是 Facebook 推出的用于保持界面流畅性的框架,其原理大致如下: UI 线程中一旦出现繁重的任务就会导致界面卡顿,这类任务通常分为3类:...其中前两类操作可以通过各种方法扔到后台线程执行,而最后一类操作只能在主线程完成,并且有时后面的操作需要依赖前面操作的结果 (例如TextView创建时可能需要提前计算出文本的大小)。

    1.6K80
    领券