2015-12-01 1 views
11

Ich habe mein Projekt auf Swift2 aktualisiert. Nachdem ich viele Fehler behoben habe, ist beim Erstellen des Projekts ein Fehler aufgetreten.Fehler im "Objective-C Generated Interface Header Name"

Der Fehler in der Objective-V Generated Interface Header befindet,

Xcode druckt diesen Fehler Type argument 'CGColorRef' (aka 'struct CGColor *') is neither an Objective-C object nor a block type

Hier ist der Code ist, wird der Fehler in der Leitung zwischen der gedruckten **:

SWIFT_CLASS("_TtC519RadialGradientLayer") 
@interface RadialGradientLayer : CALayer 
**@property (nonatomic, copy) NSArray<CGColorRef> * __nullable colors;** 
@property (nonatomic, copy) NSArray<NSNumber *> * __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 

Ich schätze, das ist Link zu dieser Klasse

class RadialGradientLayer: CALayer { 

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

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

Ich habe nirgendwo eine Antwort gefunden oder auch nur eine Ahnung, also hier bin ich.

+1

Umgehen mit '@ nonobjc'? Kein obj c Kerl, aber ich denke, das ist relevant: https://forums.developer.apple.com/message/47692#47692. – orccrusher99

Antwort

11

der Fehler versucht, Ihnen zu sagen, dass Sie nicht ein NSArray enthalten primitive Typen haben können.

Sie würde einen ähnlichen Fehler, wenn man so etwas zu tun versucht:

@property (nonatomic, strong) NSArray <Int>* intArray; 

eine Möglichkeit, dieses Problem zu beheben wäre, um Ihre schnellen Klasse machen eine Reihe von UIColor halten statt CGColor.

+0

Und ich denke für AppKit, 'NSColor' anstelle von' UIColor'? –

+1

yup! NSColor wird funktionieren – Casey