Objective c 把一个物体绑在一块木头上
我的目标如下:Objective c 把一个物体绑在一块木头上,objective-c,memory-management,objective-c-blocks,Objective C,Memory Management,Objective C Blocks,我的目标如下: Someobject *Object = [[Someobject alloc] init]; void (^Block)() = ^() { Use(Object); }; DoSomethingWith(Block); 块被复制到DoSomethingWith中并存储在某处。它可能不会被调用、调用一次或调用多次。我想将对象与块绑定,这样无论何时块或其任何副本被释放,对象被释放,无论何时块或其任何副本被保留或复制,对象都将被保留。 有办法吗?将第一行更改为[[[S
Someobject *Object = [[Someobject alloc] init];
void (^Block)() = ^()
{
Use(Object);
};
DoSomethingWith(Block);
块被复制到DoSomethingWith
中并存储在某处。它可能不会被调用、调用一次或调用多次。我想将对象
与块绑定,这样无论何时块或其任何副本被释放,对象
被释放,无论何时块或其任何副本被保留或复制,对象
都将被保留。有办法吗?将第一行更改为
[[[Someobject alloc]init]autorelease]
块保留在其主体中未声明和引用的对象,并在释放时释放它们。在DoSomethingWith
内制作的块副本也将如此。假设拷贝最终被释放,就不会有泄漏。很酷
(例外:如果对象
被声明为\u block Someobject*对象
,以及预期效果(删除块的私有引用的“const”,允许块分配给对象
),此自动重置行为也将关闭。在这种情况下,保留/释放再次由您负责。)