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

Objective-CObjective-C语言的动态性

Objective-C语言的动态性主要体现在以下3个方面   (1)动态类型:运行时确定对象的类型。   (2)动态绑定:运行时确定对象的方法。   ...type 'NSData *' NSString *testObject = [[NSData alloc]init]; //编译其认为是NSString,所以允许使用NSString的方法,不会有警告错误...三、动态加载   动态加载分为两部分:动态资源的加载(如:图片资源),代码模块的加载;这些都是在运行时根据需要有选择性的添加到程序中的,是一种代码资源的“懒加载”模式,这样降低编译时期对内存的开销,提供程序的性能...在消息传递机制中,当开发者编写[receiver message:xxx]语句进行发送消息后,编译器都会将其转换成objc_msgSend C语言的发送格式。...动态性即OC的动态类型、动态绑定、动态加载,将对象类型的确定、方法调用的确定、代码资源的转载推迟到运行时记性,灵活方便。

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

Objective-C Copy

copyPerson.age = _age; copyPerson.name = _name; return copyPerson; } @end 二、深拷贝(Deep Copy)浅拷贝...如果一个类具有可变不可变的变体:那么可变类应该采用NSMutableCopying协议(而不是NSCopying)并实现mutableCopyWithZone:方法来确保拷贝的对象保持可变。...浅拷贝深拷贝方法都直接copy属性,但不同之处在于它们如何处理指针引用,特别是对对象的引用(例如NSString * str)。深拷贝复制所引用的对象,而浅拷贝仅复制对这些对象的引用。...NSNumber,NSData, NSDate,NSvalue)中:对immutable对象进行copy操作,是指针复制(浅复制),mutableCopy操作时内容复制(深);对mutable对象进行copymutableCopy...在集合类对象(NSArray、NSDictionary、NSSet)中,对immutable对象进行copy,是指针复制,mutableCopy是内容复制;对mutable对象进行copymutableCopy

45820

Objective-C笔记

当前主要支持的编译器有GCCClang(采用LLVM作为后端)。 Objective-C的商标权属于苹果公司,苹果公司也是这个编程语言的主要开发者。...苹果在开发NeXTSTEP操作系统时使用了Objective-C,之后被OS XiOS继承下来。...现在Objective-C与Swift是OS XiOS操作系统、及与其相关的API、CocoaCocoa Touch的主要编程语言。 Objective-CC语言的严格超集。...头文件包含类,类型,函数常数的声明。 .m 源代码文件。这是典型的源代码文件扩展名,可以包含 Objective-C C 代码。 .mm 源代码文件。...带有这种扩展名的源代码文件,除了可以包含Objective-CC代码以外还可以包含C++代码。仅在你的Objective-C代码中确实需要使用C++类或者特性的时候才用这种扩展名。

90840

Objective-C中的继承多态

OC中和Java类似,不支持多重继承,但OOP语言C++就支持多继承,为什么OC不支持多继承稍后将会提到。    说到继承呢,想到了一本书上是引用《大话西游》里的一句话来描述继承的。...在Objective-C中super是指向直接父类的指针,而self是指向本身的指针,self就相当于java中的this指针。...在Objectiv-C中几乎所有的类都是继承自NSObject类,NSObject类中存在大量功能强大的方法。下面对NSObject类中的各种方法进行试验介绍:         1....= str1"); }     ​    ​Objective-C中的继承         继承是is-a的关系,比如猫咪是一个动物,那么动物是父类,而猫咪是动物的子类。...2014-07-30 08:38:12.958 HelloOC[483:303] 我是富二代BILL`s son,我超喜欢飙车 ​Objective-C中的多态     ​    ​多态简单的说就是对于不同对象响应同一个方法时做出的不同反应

1.2K80

Objective C编程》笔记

id的含义是:指针,并可以指向任意类型的Objective-C对象,e.g.: id delegate 注意:以上声明没有用星号。id已经隐含了星号的作用。...4.在obj-c中,创见对象最常见的途径就是使用allocinit,通常会将这两个消息写在一行代码中,并以嵌套的形式连续发送(Apple推荐写法): [[NSDate alloc] init];...对于这些类,相等的(equal)相同的(identical)是两个概念。...15.CC++、Objective-C这类语言的代码文件要经过两步才能完成编译。首先,预处理器(preprocessor)会读入并处理整个文件。...18.在Objective-C中,有三种途径可以实现回调。 a.目标-动作(Target-action):在应用开始等待前,要求“当X发生时,向指定的对象发送某个特定的消息。”

59330

Objective-C中的@property@synthesize用法

@代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用。...如: 1、在头文件中: C代码   @property int count;   等效于在头文件中声明2个方法: C代码   - (int)count;   -(void)setCount:(int...copy: setter方法进行Copy操作,与retain一样 nonatomic: 禁止多线程,变量保护,提高性能 参数类型 参数中比较复杂的是retaincopy,具体分析如下: getter...并且,delegate Outlet 应该用 weak 属性来声明。同时,如上一回介绍的 iOS 5 之前的版本是没有 __weak 关键字的,所以 weak 属性是不能使用的。...声明的分类 在 Objective-C官方文档 中的Property一章里有对类Property详细说明。

1.5K110

automake编译安装方式说明

然后,再在thirdparty下建立名叫src_package,用来存放第三方库的源码包,如没有特别说明,第三方库默认均为automake编译安装方式。...【automake编译安装方式说明】 通常Linux系统自带automake编译工具,C/C++开源库一般都采用automake编译。...假设源代码库文件名为protobuf-2.4.1.tar.gz,则编译安装操作步骤如下: 1) 将源代码包文件protobuf-2.4.1.tar.gz上传到Linux机上,这里假设上传到Linux...,tar解压参数请由xzf改成xjf b) 上述第9步不是必须的,但会是一个良好的Linux风俗,建议保持 c) 注意第5步,如果生成的静态库会被其它共享库使用,则可能需要为configure增加参数.../configure --prefix=/usr/local/protobuf-2.4.1 CXXFLAGS=-fPIC LDFLAGS=-fPIC d) 开源的C/C++库源代码包文件一般都采用类似于

1.9K30

Objective-C 入门笔记

简介 建立在C语言之上,可以混编C/C++代码,编写一个类需要二个文件: .h的头文件 .m的实现文件(如果是C/C++混编文件,文件后缀为.mm) 既然有头文件,所以很多人会拿它与C++进行类比,它最重要的三个特性是...苹果定义的类,一般类名最前面有二个字母,比如NSObject中的NS,UIKit中的UI,所以为了避免跟苹果定义的类产生冲突,自定义的类以三个字母开头,比如BNR这样 2) 方法的定义调用 ?...方法分二种:实例方法、类方法,如上图所示,区别类方法实例方法,主要是它的声明符:-、+ + (返回值类型) 类方法名 - (返回值类型) 实例方法名,需要先创建后再使用,比如这样:[[[Hello alloc...3) 基本数据类型 OC建立在C语言之上,所以C中的所有基本数据类型它都支持,比如:int、float、char… OC自身定义的数据类型,都包含在Foundation中了,类名以NS开头,比如:NSArray...、NSInteger、NSNumber,定义:NSString *myStr; 更多关于Objective-C的学习资料,推荐 Ry’s Objective-C Tutorial

63930

Objective-C Runtime详解

Objective-C Runtime 最近在学习Runtime的知识,恰巧发现了这篇博客《Objective-C Runtime》,在此基础上,进行了些许补充说明,如有错误或其他想法,欢迎提出交流。...这就是 Objective-C Runtime 系统存在的意义,它是整个Objc运行框架的一块基石。 Runtime其实有两个版本:“modern” “legacy”。...我们现在用的 Objective-C 2.0 采用的是现行(Modern)版的Runtime系统,只能运行在 iOS OS X 10.5 之后的64位程序中。...参考链接 原文: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.7K60
领券