Objective-C语法之@porpetry 关键字

1、简介:

property是Objective-C的关键词,与@synthesize配对使用,用来让编译好器自动生成与数据成员同名的方法声明。@synthesize则是用来生成对应声明方法的实现。

1.1 property的语法格式:

@property (参数1,参数2)类型名字;

这里的参数,主要有以下三种:

setter/getter方法(assign/retain/copy)

读写属性(readwrite/readonly)

atomicity(nonatomic)

1.2 三种方式的使用

assign/retain/copy  代表赋值的方式。

readonly关键字代表setter不会被生成, 所以它不可以和 copy/retain/assign组合使用。

atomicity的默认值是atomic,读取函数为原子操作。

1.2.1 copy/reain/assign 在其中选择一个来确定属性的setter如何处理这个属性。NSObject对象采用这个中方式。

1.2.2 一些特别的Object比如NSSstring使用copy。

1.2.3 assign关键字代表setter直接赋值,而不是复制或者保留它。适用于基本数据类型,比如NSInteger和CGFloat,或者你并不直接拥有的类型,比如delegates。

时间: 2024-10-04 00:09:47

Objective-C语法之@porpetry 关键字的相关文章

语法构成、关键字和保留字、变量

1.语法 1.1如果引入了外部js,那么在该script标签里不能再写js代码 <script src=""></script> 1.2区分大小写 1.3标识符组成开头:a(字母)._.$ 1.4不能把关键字,保留字,true false null作为标识符 2.变量 var a;//创建(声明)变量 var a=1;//创建变量,和变量初始化: a=1+a;//变量的操作 3.数据类型 var a;//创建变量 var a=1;//创建变量,和变量初始化: a

OC语法3——点语法,self关键字

点语法:   为了给程序员提供便捷,OC中也引入了点语法.不过它和Java中点语法的意义是完全不同的. 在Java中无论调用任何方法,还是访问public类型的成员变量都是用点语法(.号). 而在OC中只规定点语法只可以替代set和get方法. 例如.stu.age = 23;它的本质是[stu setAge : 23];  即,为stu的age属性赋值为23. int myAge = stu.age; 它的本质是[stu age]; 即,获取stu的age属性并赋值给MyAge. 注意: OC

理解 ES6 语法中 yield 关键字的返回值

在 ES6 中新增了生成器函数的语法,本文解释了生成器函数内 yield 关键字的返回值. 描述 根据语法规范,yield 关键字用来暂停和继续执行一个生成器函数.当外部调用生成器的 next() 方法时,yield 关键字右侧的表达式才会执行. 执行结果会转化为一个对象(包含两个属性, value 和 done),作为 next() 方法的返回值. 对于  var foo = yield expression 语句,yield 左侧变量 foo 的值将在下一次调用 next() 方法时获得,并

Objective-C 语法之 static 关键字

转:http://www.apkbus.com/android-593-1.html 学习过Java 或者 C 语言的朋友应该很清楚static关键字吧?在某个类中声明一个static 静态变量, 其他类中想使用它或者修改它不用new 这个对象 ,直接使用它的类名方可直接拿到这个静态变量的对象,遍可以在其他类中任意修改这个变量的数值.        在Objective-C 的语法中声明后的static静态变量在其他类中是不能通过类名直接访问的,它的作用域只能是在声明的这个.m文件中 .不过可以

Java基础语法 - 面向对象 - static 关键字

使用static关键字修饰的变量.常量和方法分别被称作静态变量.静态常量和静态方法,也被称作类的静态成员 静态变量 使用static修饰过的类变量称为静态变量 该变量需要使用类名.变量名进行调用,不能使用对象名/this进行调用 在类方法中不能定义与静态变量同名的局部变量 1 package mingri.chapter_6; 2 3 public class Pool { 4 5 public static int water = 0; // 定义一个静态变量 6 7 public void

OC语法8——@class关键字

@class关键字: 在当前类中若要引用其他类的对象作成员变量(Book  *book),我们以前采用的方式是 #import "Book.h" 但 #import "Book.h" 的意思是把整个Book.h文件拷贝进来.但是我们的需求是只要告诉编译器Book是个类就行了,所以写#import可以,但是效率不高. 为此,OC提供了个专门的关键字@class. @class  Book;只是给编译器声明Book是个类! @class Book; @class和#im

初学Objective - C语法之代码块(block)

一.block声明 1.无参数,无返回值: void (^sayHi)(); 2.有参数,有返回值: NSInteger (^operateOfValue)(NSInteger num); block的声明:返回值类型(^block变量名)(参数列表) 脱字符(^)是块的语法标记 二.block实现 block变量名 = ^返回值类型(参数列表) 1.  sayHi = ^{ NSLog(@"你好"); }; 2. operateOfValue = ^ NSInteger (NSInt

Java基础语法 - 面向对象 - this 关键字

在Java语言中规定使用this关键字来代表本类对象的引用,this关键字被隐式地用于引用对象的成员变量和方法. this关键字引用的就是本类的一个对象,在局部变量或方法参数覆盖了成员变量时,就要添加this关键字明确引用的是类成员还是局部变量或方法参数. 1 package mingri.chapter_6; 2 3 public class BookTest { 4 public String name; 5 6 public void setName(String name) { 7 th

Java 语法中的关键字

JAVA 关键字 ? Java 的关键字,这些关键字不能用于常量,变量以及任何标识符的名称 访问控制 private protected public 类,方法和变量修饰符 abstract class extends final implements interface native new static strictfp synchronized transient volatile 程序控制语句 Break case continue default do else for if inst