コールバックでオブジェクト(UserProfileなど)を非同期的に返すメソッドがあります。
このUserProfileオブジェクトに基づいて、一部のコードはaUITableViewCell
が編集可能かどうかを計算します。
次のコードを作成しましたが、残念ながら機能しません。
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
Entry *entry = [[self.feed entries] objectAtIndex:[indexPath row]];
typedef BOOL (^BOOLBlock)(id);
BOOLBlock bar = ^BOOL (id p) {
if (p) {
UserProfile *user = (UserProfile *) p;
NSEnumerator *e = [[entry authors] objectEnumerator];
id object;
while (object = [e nextObject]) {
if ([[object name] isEqualToString:[[[user authors] objectAtIndex:0] name]])
return TRUE;
}
return FALSE;
}
else {
return FALSE;
}
};
[[APPContentManager classInstance] userProfile:bar];
}
最後の行には、互換性のないブロックポインタタイプの送信が示されています
'__strong BOOLBlock' (aka 'BOOL (^__strong)(__strong id)') to parameter of type 'void (^)(UserProfile *__strong)'
APPContentManager.h
-(void)userProfile:(void (^)(UserProfile *user))callback;