当前位置:  开发笔记 > IOS > 正文

"Objective-C生成的接口标题名称"中的错误

如何解决《"Objective-C生成的接口标题名称"中的错误》经验,为你挑选了1个好方法。

我一直在将我的项目升级到Swift2.在解决了许多错误之后,我在构建项目时遇到了错误.

错误位于Objective-V Generated Interface Header,

Xcode正在打印此错误 Type argument 'CGColorRef' (aka 'struct CGColor *') is neither an Objective-C object nor a block type

这是代码,错误打印在**之间的行上:

SWIFT_CLASS("_TtC519RadialGradientLayer")
@interface RadialGradientLayer : CALayer
**@property (nonatomic, copy) NSArray * __nullable colors;**
@property (nonatomic, copy) NSArray * __nullable locations;
@property (nonatomic) CGPoint center;
@property (nonatomic) CGFloat startRadius;
@property (nonatomic) CGFloat endRadius;
- (nullable instancetype)initWithCoder:(NSCoder * __nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithLayer:(id __nonnull)layer OBJC_DESIGNATED_INITIALIZER;
- (void)drawInContext:(CGContextRef __nonnull)ctx;
+ (BOOL)needsDisplayForKey:(NSString * __nonnull)key;
@end

我猜这是这个班级的链接

class RadialGradientLayer: CALayer {

    var colors: [CGColor]? {
        didSet {
            self.setNeedsDisplay()
        }
    }

    var locations: [CGFloat]? {
        didSet {
            self.setNeedsDisplay()
        }
    }
    ...
}

我没有找到任何答案,甚至没有任何线索,所以我在这里.



1> Casey..:

错误试图告诉你,你不能有一个NSArray包含原始类型.

如果您尝试执行以下操作,您会收到类似的错误:

@property (nonatomic, strong) NSArray * intArray;

解决这个问题的一种方法是让你的swift类保持一个数组,UIColor而不是CGColor.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有