! Unknown property attribute "class"

当时是在用Xcode 7进行编译ASDK的代码发现报错了

当时就蒙圈了,@property(class)--这是啥呀,太久没看过object-c了,但是不至于@property是没有class属性的,没办法只能靠度娘解决问题了,于是就找到了一个大神的文章,本文也是只是做个学习记录

http://www.cocoachina.com/ios/20161202/18257.html

1、Xcode8才支持Objective-C 的类属性了,与OC 中的类属性对应的是Swift的类型属性。

注意:尽管这是Xcode 8 中 LLVM 编译器的新特性,但是它对于iOS 10之前的版本依然适用

2、声明形式如下:

@property (nonatomic, class, copy) ASDisplayNodeNonFatalErrorBlock nonFatalErrorBlock

类属性永远不会被自动合成(就是说如果不自己代码实现 setter和getter的话,是不行的);

3、在.m文件内需要声明成Static类型

static ASDisplayNodeNonFatalErrorBlock _nonFatalErrorBlock = nil;

4、setter和getter的方法实现(因为_nonFatalErrorBlock是static类型,所以 setter和getter方法是类方法)

 1 + (void)setNonFatalErrorBlock:(ASDisplayNodeNonFatalErrorBlock)nonFatalErrorBlock
 2 {
 3   if (_nonFatalErrorBlock != nonFatalErrorBlock) {
 4     _nonFatalErrorBlock = [nonFatalErrorBlock copy];
 5   }
 6 }
 7 
 8 + (ASDisplayNodeNonFatalErrorBlock)nonFatalErrorBlock
 9 {
10   return _nonFatalErrorBlock;
11 }

5、使用的方式是按照static类型方式:类名.nonFatalErrorBlock,

以上大概就是这个知识点的基本使用了,有不妥之处欢迎指正,详细的可以通过上面链接学习。

 

posted @ 2017-08-03 00:21  大卫的梦呓  阅读(1323)  评论(0编辑  收藏  举报