我收到上面的错误,但不确定如何修复它.这是我的代码:
.H:
#import <UIKit/UIKit.h>
@protocol ColorLineDelegate <NSObject>
-(void)valueWasChangedToHue:(float)hue;
@end
@interface ColorLine : UIButton {
id <ColorLineDelegate> delegate;
}
@property (nonatomic, assign) id <ColorLineDelegate> delegate;
@end
Run Code Online (Sandbox Code Playgroud)
.M:
#import "ColorLine.h"
@implementation ColorLine
@synthesize delegate;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
错误发生在合成行中.我找不到问题了.
jan*_*nBP 54
使用以下语法:
@interface SomeClass : NSObject {
id <SomeClassDelegate> __unsafe_unretained delegate;
}
@property (unsafe_unretained) id <SomeClassDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)
rck*_*nes 52
看起来您的项目可能正在使用,ARC
那么属性应该以这种方式声明:
#import <UIKit/UIKit.h>
@protocol ColorLineDelegate <NSObject>
-(void)valueWasChangedToHue:(float)hue;
@end
@interface ColorLine : UIButton
@property (nonatomic, weak) id <ColorLineDelegate> delegate;
@end
Run Code Online (Sandbox Code Playgroud)
Joh*_*nes 21
当我在ARC项目中使用没有ARC功能的旧示例代码时,我遇到了同样的问题.您似乎不再需要将变量声明放入接口定义中.所以你的代码应该像这样工作:
H:
#import <UIKit/UIKit.h>
@protocol ColorLineDelegate <NSObject>
-(void)valueWasChangedToHue:(float)hue;
@end
@interface ColorLine : UIButton {
// Get rid of this guy!
//id <ColorLineDelegate> delegate;
}
@property (nonatomic, assign) id <ColorLineDelegate> delegate;
@end
Run Code Online (Sandbox Code Playgroud)
.M:
#import "ColorLine.h"
@implementation ColorLine
@synthesize delegate;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
小智 6
也许有点晚,但要"符合ARC",你只需要更换
@property (nonatomic, assign) id <ColorLineDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)
通过
@property (nonatomic, strong) id <ColorLineDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)
再见.
归档时间: |
|
查看次数: |
33445 次 |
最近记录: |