id是指向Objective-C类对象的指针,它可以声明为任何类对象的指针,当在Objective-C中使用id时,编译器会假定你知道,id指向哪个类的对象。与void*是不同的是,void*编译器不知道也不假定指向任何类型的指针。 nil 定义为一个常量,如果一个指针的值为nil,代表这个指针没有指向任何对象。 self 在Objective-C中,关键...
iOS9的几个新关键字(nonnull、nullable、null_resettable、__null_unspecified 、__kindof) 基本数据类型的默认关键字为 atomic, assign, readwrite 普通属性的默认关键字为 atomic, strong, readwrite 属性关键字大致可分为三类: 1.表示原子性的 atomic:原子性,线程安全(其实只是setter, getter方法是原子操作,线程...
copy:会在内存里拷贝一份对象,两个指针指向不同的内存地址。一般用来修饰NSString等有对应可变类型的对象,因为他们有可能和对应的可变类型(NSMutableString)之间进行赋值操作,为确保对象中的字符串不被修改 ,应该在设置属性是拷贝一份。而若用strong修饰,如果对象在外部被修改了,会影响到属性。 unsafe_unretained:跟 we...
property是Objective-C的关键词,与@synthesize配对使用,用来让编译好器自动生成与数据成员同名的方法声明。@synthesize则是用来生成对应声明方法的实现。 一、@property关键字 1、property的语法格式: @property(参数1,参数2)类型名字; 这里的参数,主要有以下三种: (1)setter/getter方法(assign/retain/copy) (2)读写...
一、属性关键字的分类 1.读写权限 readonly 是否是系统默认:否 内存管理语义:只读 作用:只能读取数值或打印;防止被修改 readwrite 是否是系统默认:是 内存管理语义:可读可写 作用:可以修改和读取 2.原子性 noatomic 是否是系统默认:否 内存管理语义:非原子性 作用:效率高,运行快; 读取、操作和访问线程都不...
property是Objective-C的关键词,与@synthesize配对使用,用来让编译好器自动生成与数据成员同名的方法声明。@synthesize则是用来生成对应声明方法的实现。 1.1 property的语法格式: @property (参数1,参数2)类型名字; 这里的参数,主要有以下三种: setter/getter方法(assign/retain/copy) ...
欢迎查看上篇:iOS面试攻略上篇:Objective-C关键字和概念 1、Object-C有多继承吗?没有的话用什么代替?cocoa 中所有的类都是NSObject 的子类 多继承在这里是用protocol 委托代理 来实现的 你不用去考虑繁琐的多继承 ,虚基类的概念. ood的多态特性 在 obj-c 中通过委托来实现. ...
1 objective-c ios选择objective-c作为开发语言的原因: 面向对象 兼容标准的C语言 语法简单较易学习 1.1 类定义 创建Objective-C类时会生成两个文件:.h的头文件与.m的源文件。类声明关键字为@interface,类实现关键字为@implementation。 MyClass.h文件:定义了成员变量和方法。
Objective-C简称Obj-C或者OC。 Obiective是面向对象的意思,所以Objective-C就是面向对象的C语言。 所以,OC的本质还是C语言。 OC是在C的基础之上增加了一小部分的面向对象的语法,将C语言复杂的、繁琐的语法封装得更为简单。 因此,OC也是完全兼容C语言的,也就是说在OC语言中可以写任意的C语言代码。
在Objective-C中,可以使用extern关键字来定义全局可访问的字符串。具体步骤如下: 在一个头文件(.h文件)中声明字符串变量,并使用extern关键字标记。例如,可以在一个名为GlobalStrings.h的头文件中添加以下代码: 代码语言:objective-c 复制 extern NSString *const kGlobalString; ...