mam ten kod (urywek) od pliku .h:__unsafe_unretained dla delegata nie zbuduje
#import <UIKit/UIKit.h>
#import "ILView.h"
/**
* Controls the orientation of the picker
*/
typedef enum {
ILHuePickerViewOrientationHorizontal = 0,
ILHuePickerViewOrientationVertical = 1
} ILHuePickerViewOrientation;
@class ILHuePickerView;
/**
* Hue picker delegate
*/
@protocol ILHuePickerViewDelegate
/**
* Called when the user picks a new hue
*
* @param hue 0..1 The hue the user picked
* @param picker The picker used
*/
-(void)huePicked:(float)hue picker:(ILHuePickerView *)picker;
@end
/**
* Displays a gradient allowing the user to select a hue
*/
@interface ILHuePickerView : ILView {
id<ILHuePickerViewDelegate> delegate;
float hue;
ILHuePickerViewOrientation pickerOrientation;
}
/**
* Delegate
*/
//@property (assign, nonatomic) IBOutlet id<ILHuePickerViewDelegate> delegate;
@property (assign, nonatomic) IBOutlet __unsafe_unretained id<ILHuePickerViewDelegate> delegate;
/**
* The current hue
*/
@property (assign, nonatomic) float hue;
Plik .m wygląda następująco:
#import "ILHuePickerView.h"
#import "UIColor+GetHSB.h"
@interface ILHuePickerView(Private)
-(void)handleTouches:(NSSet *)touches withEvent:(UIEvent *)event;
@end
@implementation ILHuePickerView
@synthesize color, delegate, hue, pickerOrientation;
#pragma mark - Setup
-(void)setup
{
[super setup];
Spojrzałem na SO w podobnych przypadkach zauważyłem, że muszę umieścić "__unsafe_unretained" w nieruchomości ... Zrobiłem to (mam nadzieję, że było poprawne), ale nadal nie udało się go skompilować. Pełny komunikat o błędzie: Istniejący Ivar „delegata” nieruchomości „delegata” z atrybutem przypisać należy __unsafe_unretained
Co robię źle?
Jak to jest dobre pytanie, przegłosowałem. – user3182143