我正在使用MPGTextField。在.h
文件中,收到以下警告:
自动属性合成不会合成属性“委托”,它会
将由其 super class 实现,使用@dynamic进行确认
意向
这是代码:
#import <UIKit/UIKit.h>
@protocol MPGTextFieldDelegate;
@interface MPGTextField : UITextField <UITableViewDelegate, UITableViewDataSource, UIPopoverControllerDelegate, UITextFieldDelegate, UIGestureRecognizerDelegate>
// Here is where I get the warning:
@property (nonatomic, weak) id <MPGTextFieldDelegate, UITextFieldDelegate> delegate;
有什么问题,我该如何解决?
最佳答案
这是因为您的MPGTextField
继承自UITextField
,该文件已经具有名为delegate
的属性。
要解决该警告,只需在实现文件中编写以下内容:
//MPGTextField.m
@dynamic delegate;
@implementation MPGTextField
//...
@end
或创建一个新属性并使用该属性,如下所示:
@property (nonatomic, weak) id <MPGTextFieldDelegate, UITextFieldDelegate> myDelegate;
@implementation MPGTextField
//...
- (void)setMyDelegate:(id <MPGTextFieldDelegate, UITextFieldDelegate>)myDelegate
{
_myDelegate = myDelegate;
self.delegate = myDelegate;
}
@end