Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用在块中访问self的方法安全吗_Ios_Objective C_Objective C Blocks - Fatal编程技术网

Ios 使用在块中访问self的方法安全吗

Ios 使用在块中访问self的方法安全吗,ios,objective-c,objective-c-blocks,Ios,Objective C,Objective C Blocks,给定方法 -(void) doSomeWork { self.abc = ... self.doreme=... } 在区块内使用doSomeWork安全吗?作为 [weakSelf doSomeWork];//this is inside a block 当然,我关心的是,doSomeWork本身对self有一些引用。是的,在具有weakSelf的块内使用doSomeWork是完全安全的 当然,我关心的是,doSomeWork本身对self有一些参考 更好的表达方式是“doSome

给定方法

-(void) doSomeWork
{
  self.abc = ...
  self.doreme=...
}
在区块内使用
doSomeWork
安全吗?作为

[weakSelf doSomeWork];//this is inside a block

当然,我关心的是,
doSomeWork
本身对self有一些引用。

是的,在具有
weakSelf
的块内使用
doSomeWork
是完全安全的

当然,我关心的是,
doSomeWork
本身对
self
有一些参考

更好的表达方式是“
doSomeWork
本身使用
self
”,以便从句子中删除“reference”一词。在
doSomeWork
内部创建的
self
没有“引用”:由于是类的实例方法,该方法“免费”引用
self
。调用方将实际引用传递给方法;当方法正在执行时,它被称为
self
,但没有创建新对象。换句话说,当您调用
[weakSelf doSomeWork]
时,您的
weakSelf
在方法调用期间变为
doSomeWork
内部的
self