美文网首页
基本语法备忘

基本语法备忘

作者: gykimo | 来源:发表于2020-11-09 15:55 被阅读0次

修饰词

property & synthesize

https://www.jianshu.com/p/e27fe4be61af
readwrite:可以产生和使用getter和setter方法.
readonly:只产生和使用getter方法,不能产生和使用setter方法.
assign:默认类型,在setter中直接进行赋值使用的,不进行retain操作
retain:setter方法中,对参数进行release释放旧值,再retain新值.释放旧对象,将旧对象的值赋予输入对象,再提高输入对象的引用计数为1.
copy:setter方法进行copy操作,与retain一样, 建立一个引用计数为1的对象,然后释放旧对象
nonatomic:禁止多线程,变量保护,提高性能
atomic:系统默认,这个属性是为了保证程序在多线程情况,编译器会自动生成一些互斥加锁代码,避免该变量的读写不同步问题。
strong:强引用,也是我们通常说的引用,其存亡直接决定了所指向对象的存亡,如果不存在指向一个对象的引用,并且此对象不再显示在列表中,则此对象会被从内存中释放.
weak:弱引用,不决定对象的存亡,即使一个对象被持有无数个弱引用,只要没有强引用指向它,那么还是会被清除
setter=: 对setter方法重新定义一个名字.
getter=: 对getter方法重新定义一个名字.

nonatomic&atomic

atomic:默认是有该属性的,这个属性是为了保证程序在多线程情况下,编译器会自动生成一些互斥加锁代码,避免该变量的读写不同步问题。
nonatomic:如果该对象无需考虑多线程的情况,请加入这个属性,这样会让编译器少生成一些互斥加锁代码,可以提高效率。

readonly & readwrite

readwrite(默认):readwrite是默认的,表示同时拥有setter和getter。
readonly: readonly 表示只有getter没有setter。
有时候为了语意更明确可能需要自定义访问器的名字:
@property (nonatomic, setter = mySetter:,getter = myGetter ) NSString *name;
最常见的是BOOL类型,比如标识View是否隐藏的属性hidden。可以这样声明
@property (nonatomic,getter = isHidden ) BOOL hidden;
要注意修改setter或者getter的名字是存在副作用的,可能会使KVC和KVO无法正常工作。

instancetype

得到的返回类型和方法所在类的类型相同
https://blog.csdn.net/wzzvictory/article/details/16994913

id(相当于void*),id<>模版用法?

https://blog.csdn.net/totogo2010/article/details/7714960
https://blog.csdn.net/LonelyRoamer/article/details/7711895
id 和void *并非完全一样。下面是id在objc.h中的定义:
typedef struct objc_object {
Class isa;
} *id;
从上面看出,id 是指向struct objc_object 的一个指针。也就是说,id 是一个指向任何一个继承了Object(或者NSObject)类的对象。需要注意的是id 是一个指针,所以在使用id的时候不需要加星号,比如,
id foo=nil;

isKindOfClass & isMemberOfClass

https://blog.csdn.net/totogo2010/article/details/7714960
-(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例
-(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例(不包括子类)

respondsToSelector & instancesRespondToSelector

https://blog.csdn.net/totogo2010/article/details/7714960
-(BOOL) respondsToSelector: selector 判读实例是否有这样方法
+(BOOL) instancesRespondToSelector: 判断类是否有这个方法。此方法是类方法,不能用在类的对象

import

和#include类似,但是保证头文件只包含一次。
这个和C++里的#pragma once宏一样的作用

NSObject

模版?

相关文章

  • 基本语法备忘

    修饰词 property & synthesize https://www.jianshu.com/p/e27fe...

  • markdown 基本语法(备忘)

    标题 标题是每篇文章都需要也是最常用的格式,在 Markdown 中,如果一段文字被定义为标题,只要在这段文字前加...

  • Markdown语法备忘

    Markdown语法备忘 基本语法 标题 #(一级)##(二级)标题共六级 列表 无序 -或* 有序 1.2. 引...

  • 语法备忘

    default? YourClass::~YourClass() = default;构造函数或者析构函数无实现,...

  • FMDB基本使用

    熟悉基本语法别看这篇文章了我这里就是单纯记录下使用,备忘 1、导入包 2、github或者pod框架:FMDB 3...

  • mysql基于navicat开发存储过程

    为了方便自己参考,忘记语法,这里代码备忘: 参数为:

  • markdown语法备忘

    代码行:8 个空格或是 2 个制表符 代码块缩进 4 个空格或是 1 个制表符,或者在代码前后放上``` 代码 链...

  • Markdown语法备忘

    标题 一级标题二级标题三级标题四级标题五级标题六级标题 列表 列表项列表项列表项 列表项列表项列表项 字体样式 斜...

  • MarkDown 语法备忘

    简书是支持Markdown的,在 iOS 项目中也经常用 markdown 为项目写说明,下面是常见的备忘一些常见...

  • swift 语法备忘

网友评论

      本文标题:基本语法备忘

      本文链接:https://www.haomeiwen.com/subject/aznlbktx.html