我正在使用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

10-08 05:38