2015-12-01 5 views
11

Ho aggiornato il mio progetto a Swift2. Dopo aver risolto molti errori, ho ricevuto un errore durante la creazione del progetto.Errore nel "Nome intestazione interfaccia Objective-C generato"

L'errore si trova nel Objective-V Generated Interface Header,

Xcode sta stampando questo errore Type argument 'CGColorRef' (aka 'struct CGColor *') is neither an Objective-C object nor a block type

ecco il codice, l'errore viene stampato sulla linea tra l'**:

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 

Immagino che sia il link a questa classe

class RadialGradientLayer: CALayer { 

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

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

Non ho trovato nessuna risposta da nessuna parte o persino un indizio, quindi eccomi qui.

+1

Lavorare con '@ nonobjc'? Non è un ragazzo obj c, ma penso che questo sia rilevante: https://forums.developer.apple.com/message/47692#47692. – orccrusher99

risposta

11

l'errore sta tentando di dirti che non è possibile avere un NSArray contengono tipi primitivi.

si otterrebbe un errore simile, se si è tentato di fare qualcosa di simile:

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

un modo per risolvere questo problema sarebbe quello di rendere la vostra classe di rapida tenere una serie di UIColor invece di CGColor.

+0

E immagino per AppKit, 'NSColor' invece di' UIColor'? –

+1

sì! NSColor funzionerà – Casey