我有一个Swift扩展名如下:
@objc
protocol Themeable: class {
@objc var themeGradient: Gradient { get set }
}
在Objc中,我有一些视图控制器采用该协议,使用@synthesize
作为属性。
#import "MyProject-Swift.h"
@interface MyObjcViewController () <Themeable>
@end;
@implementation MyObjcViewController
@synthesize themeGradient;
...
@end;
构建我在@synthesize
行中收到此错误时:
错误:属性实现必须在接口中声明 &#39; MyObjcViewController&#39;或其中一个扩展
是否可以合成Swift协议中定义的属性?
答案 0 :(得分:-1)
@protocol Themeable
@end;
此声明位于头文件中,并未触发&#34; Redeclaration&#34;错误:(
删除上述声明使@synthesize
按预期工作。