在UIView中创建 delegate的属性的时候一定要用assign,不能用retain.
因为这会导致循环引用,导致一些界面的dealloc函数不能被调用,这个时候,如果有在init和dealloc中 注册和反注册通知消息,会导致通知响应函数被调用多次,导致问题。
代码如下:
@interface TTFindPswUIView : TTTapView<UITextFieldDelegate>
{
id<TTFindPswUIViewDelegate> m_findpswDelegate;
std::string m_strAccount;
std::string m_strEmail;
UIImageView * m_bgView; //大背景
UIImageView * m_inputframebgView;//输入框下面的背景
UILabel * m_accountLabel;// 账号
UILabel * m_emailLabel;//密码
UITextField * m_accountField ;// 账号框
UITextField * m_emailField;//email框
UIButton * m_findpswBtn;//登陆按钮
UIButton * m_returnBtn;//返回按钮
}
@property(nonatomic, assign) id<TTFindPswUIViewDelegate> m_findpswDelegate;