অবজেক্টিভ-সি-তে ব্লক ব্যবহার সম্পর্কে আমি কিছুটা বিভ্রান্ত। আমি বর্তমানে এআরসি ব্যবহার করি এবং আমার অ্যাপটিতে আমার প্রচুর ব্লক রয়েছে, বর্তমানে সবসময় selfএর দুর্বল উল্লেখের পরিবর্তে উল্লেখ করা হয়। এটি কি এই ব্লকগুলি বজায় রাখা selfএবং এটিকে নিষ্পত্তি থেকে বিরত রাখার কারণ হতে পারে ? প্রশ্নটি হল, আমি কি সবসময় কোনও ব্লকের একটি weakরেফারেন্স ব্যবহার করব self?
-(void)handleNewerData:(NSArray *)arr
{
ProcessOperation *operation =
[[ProcessOperation alloc] initWithDataToProcess:arr
completion:^(NSMutableArray *rows) {
dispatch_async(dispatch_get_main_queue(), ^{
[self updateFeed:arr rows:rows];
});
}];
[dataProcessQueue addOperation:operation];
}
ProcessOperation.h
@interface ProcessOperation : NSOperation
{
NSMutableArray *dataArr;
NSMutableArray *rowHeightsArr;
void (^callback)(NSMutableArray *rows);
}
ProcessOperation.m
-(id)initWithDataToProcess:(NSArray *)data completion:(void (^)(NSMutableArray *rows))cb{
if(self =[super init]){
dataArr = [NSMutableArray arrayWithArray:data];
rowHeightsArr = [NSMutableArray new];
callback = cb;
}
return self;
}
- (void)main {
@autoreleasepool {
...
callback(rowHeightsArr);
}
}

