Uitableview 如何在使用ARC的项目中实现ADLivelyTableView类

Uitableview 如何在使用ARC的项目中实现ADLivelyTableView类,uitableview,core-animation,automatic-ref-counting,Uitableview,Core Animation,Automatic Ref Counting,我已经完成了ADLivelyTableView演示项目,但未能成功地将ADLivelyTableView h和m文件导入到我的项目中。看来主要问题与ARC有关。我已经尝试过将演示项目转换为arc,特别是只转换LDMasterView.m文件,这只会删除对释放对象的所有引用,因此在转换之后,build settings下的use arc选项现在处于启用状态,应用程序可以正常工作。因此,我认为ADLivelyTableView.m和.h文件不需要转换,但当这些文件导入到我的项目中时,我会收到这两段代

我已经完成了ADLivelyTableView演示项目,但未能成功地将ADLivelyTableView h和m文件导入到我的项目中。看来主要问题与ARC有关。我已经尝试过将演示项目转换为arc,特别是只转换LDMasterView.m文件,这只会删除对释放对象的所有引用,因此在转换之后,build settings下的use arc选项现在处于启用状态,应用程序可以正常工作。因此,我认为ADLivelyTableView.m和.h文件不需要转换,但当这些文件导入到我的项目中时,我会收到这两段代码的各种ARC错误:

 if (block != _transformBlock) {
        Block_release(_transformBlock);
        _transformBlock = Block_copy(block);
    }
}

我不明白为什么在演示项目中打开ARC时这些错误没有显示出来。我更喜欢寻找解决方案,而不是尝试将我的整个应用程序导入到演示项目!错误如下:

ARC Casting Rules: Cast of block pointer type 'ADLivelyTransform (aka NSTimeINterval (^)CALayer*_strong, float) to C pointer type 'const void *' required a bridged cast.
ARC Casting Rules: Cast of C Pointer ....(Same as above)
此外,解决此问题后,只需导入ADLivelyTableView.h和.m文件,然后添加以下行即可:

ADLivelyTableView * livelyTableView = (ADLivelyTableView *)self.tableView;
    livelyTableView.initialCellTransformBlock = ADLivelyTransformFan;
进入我的视图加载部分?还是应该为我的特定表格编辑该位

谢谢你的帮助, 当做
Rami

您可以修改ADLivelyTableView.m的编译器标志


请尝试添加-fno objc arc。

我添加了编译器标志,但再次出现错误。日志为2015-01-23 18:25:23.494 myProject[13905:70b]-[UITableView setInitialCellTransformBlock:]:发送到实例0x7a228c00 2015-01-23 18:25:23.498 myProject[13905:70b]***由于未捕获异常“NSInvalidArgumentException”,终止应用程序,原因:'-[UITableView setInitialCellTransformBlock:]:发送到实例0x7a228c00的选择器无法识别'
ADLivelyTableView * livelyTableView = (ADLivelyTableView *)self.tableView;
    livelyTableView.initialCellTransformBlock = ADLivelyTransformFan;