iOS块成为僵尸

我已经通过方法块,我的function是这样的。

- (void)setPhoneNumber:(NSString *)phoneNo andView:(UIView *)view andSuccessBlock:(void (^)(id responseObject))successBlock andFailureBlock:(void (^)(NSString *errorMsg, NSInteger errorCode, AFHTTPRequestOperation *operation, NSError *error))failureBlock { } 

我这样打电话。

  [[WSHelper sharedInstance] setPhoneNumber:phoneNumber andView:nil andSuccessBlock:^(id responseObject) { } andFailureBlock:^(NSString *errorMsg, NSInteger errorCode, AFHTTPRequestOperation *operation, NSError *error) { }]; 

问题是,当我检查successBlock,它被释放(我正在使用弧,不应该像这样释放)。 我试过typedef也不行。 在我的其他项目中,这工作正常,但只在这里,这是不行的。 我该如何解决?

(lldb)po successBlock
0x00000001078063c0

你没有在块内添加代码。 但是我想知道是否有内容引起循环引用。 我会尝试分配应用程序logging所有保留打开。 这将会告诉你哪里留下了哪些东西,哪些(有点运气)会指出问题在哪里。