weak
is not required here. The intent of using weak
for variables copied into a block is to avoid a circular reference, and you're not at risk of that here - in part because the block isn't held onto.
Consider the following example. Capturing self in the block which is owned by self causes a retain cycle that cannot be broken:
@interface MyObject : NSObject
@property (copy, nonatomic) void (^contrived)();
@end
@implementation MyObject
- (id) init
{
self = [super init];
if ( self )
{
self.contrived = ^{
NSLog( @"%@", self.description );
};
}
return self;
}
@end