我已经完成了ADLivelyTableView演示项目,但无法成功将ADLivelyTableView h和m文件导入到我的项目中。似乎主要问题与ARC有关。我已经通过将演示项目转换为arc进行了实验,特别是只转换了LDMasterView.m文件,这只是删除了对释放对象的所有引用,因此在转换之后,构建设置下的使用ARC选项现在已启用并且应用程序作品。所以我认为ADLivelyTableView .m和.h文件不需要转换,但是当这些文件导入我的项目时,我会得到这两个代码块的各种ARC错误:
if (block != _transformBlock) {
Block_release(_transformBlock);
_transformBlock = Block_copy(block);
}
}
和
@implementation ADLivelyTableView
- (void)dealloc {
Block_release(_transformBlock);
[super dealloc];
}
我不明白为什么在演示项目中打开ARC时没有显示这些错误。 id更喜欢寻找解决方案,而不是尝试将我的整个应用程序导入到演示项目中!错误如下:
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;
进入我的viewDidLoad部分?或者该位应该针对我的特定表进行编辑?
感谢您的帮助, 问候, 拉米
答案 0 :(得分:2)
您可以修改ADLivelyTableView.m的编译器标志。
请尝试添加-fno-objc-arc。