Hard to say due to lack of context, but it seems like duplicate syntax for resolving an incompatible property type of an inherited delegate
Probably the problem is that you are creating a new property with the same name but with different protocols.
For example, a UIToolBar has the following property:
@property(nonatomic, assign) id<UIToolbarDelegate> delegate;
If you were to declare below in your class, this will generate this warning, because the two properties have different protocols:
@property(nonatomic, assign) id<MyBetterDelegate> delegate;
There are two ways to solve this problem. You can change your protocol to inherit another protocol:
@protocol MyBetterDelegate<UIToolbarDelegate> ...
Or you can change your property definition to capture both protocols:
@property(nonatomic, assign) id<MyBetterDelegate, UIToolbarDelegate> delegate;
source share