2013-06-05 25 views
0

我在iphone development.now很新,我面對我的project.while一個警告,設置的UITextField的在iOS 6中,我發現了警告的委託,它中的UITextField的代表在收到警告

"**incompatible pointer types sending 'class' to parameter of type '<uitextfielddelegate>'**" 


+(UITextField*)tableLabelForText:(NSString *)txt frame:(CGRect)frm isEditable:(BOOL)isEditable 

{ 

    UITextField *txtField = [[UITextField alloc] initWithFrame:frm]; 
    [txtField setEnabled:isEditable]; 

    [txtField setText:txt]; 

    [txtField setTextColor:[UIColor blackColor]]; 
    [txtField setDelegate:self]; 

    return txtField; 
} 

回答

0

您正試圖在不知道初始化對象的類方法中分配委託。因此警告。你需要做的是setDelegate到初始化的對象。

[txtField setDelegate:<MyObject>]; 

或者你可以作爲答案建議將類方法更改爲實例方法。

-(UITextField*)tableLabelForText:(NSString *)txt frame:(CGRect)frm isEditable:(BOOL)isEditable 
0

您使用的是類級的方法「+」返回文本字段實例,將其更改爲實例級別法「-」。即:

-(UITextField*)tableLabelForText:(NSString *)txt frame:(CGRect)frm isEditable:(BOOL)isEditable 
0

如果我沒看錯的,要設置代表一個NSObject類, 作爲NSObject類沒有任何意見,所以UITextFieldDelegate沒有確認到類。改用UIView

@interface ClassName : UIView <UITextFieldDelegate>