1

我已经完成了 ADLilyTableView 演示项目,但无法将 ADLilyTableView h 和 m 文件成功导入到我的项目中。看来主要问题与ARC有关。我已经通过将演示项目转换为 arc 进行了实验,特别是仅转换 LDMasterView.m 文件,这只是删除了对释放对象的所有引用,因此在此转换之后,构建设置下的使用 ARC 选项现在为 ON 并且应用程序作品。所以我认为 ADLilyTableView .m 和 .h 文件不需要转换,但是当这些文件被导入我的项目时,我得到这两个代码块的各种 ARC 错误:

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

@implementation ADLivelyTableView

- (void)dealloc {
    Block_release(_transformBlock);
    [super dealloc];
}

我不明白为什么在演示项目中打开 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)

此外,一旦这个问题得到解决,它应该就像导入 ADLilyTableView .h 和 .m 文件然后添加以下行一样简单:

ADLivelyTableView * livelyTableView = (ADLivelyTableView *)self.tableView;
    livelyTableView.initialCellTransformBlock = ADLivelyTransformFan;

进入我的 viewDidLoad 部分?还是应该为我的特定表格编辑该位?

感谢您的帮助,问候,拉米

4

1 回答 1

2

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

请尝试添加 -fno-objc-arc。

于 2013-08-02T07:22:07.983 回答