我的問題是,我有一個屏幕有很多UITextField和類,在UITextField中輸入的所有數據都存儲在我的xyz類中。現在我正在使用switch case將我的UITextField映射到類屬性,這非常可怕,更不用說驗證了,它增加了更多的複雜性。有沒有什麼辦法來映射類屬性與UITextField並擺脫開關的情況下,請幫助。將UITextField映射到類屬性
回答
給每個文本字段一個從0到n的標籤。然後,您可以使用數組來查看標籤映射到
出口
屬性名稱,例如:
@interface MyClass
@property (nonatomic, retain) id property1 ;
@property (nonatomic, retain) id property2 ;
@property (nonatomic, retain) id property3 ;
@end
然後在你的-(void)textFieldDidChangeText:(NSNotification*)note
(或任何你正在處理你的文本字段的變化)的方法做到這一點:
static NSString * fieldNames[] = { @"property1", @"property2", @"property3" } ;
UITextField * field = [ note object ] ;
[ self setValue:field.text forKey:fieldNames[ field.tag ] ] ;
也許別人可以有一個更堅實的解決方案。 HTH
正確的基本問題在於將文本字段直接映射到屬性,並因此增加了對字符串數組的需求:(並且錯誤的索引可能會導致損壞 – 2011-05-13 08:29:05
您可以添加:assert field.tag> 0 &&字段。標記<(sizeof(fieldNames)/ sizeof(fieldNames [0]))':-) – nielsbot 2011-05-13 17:26:27
此外,在這種情況下,我將標記分配給本地變量,以避免調用field.tag 3x。 ('NSInteger tag = field.tag') – nielsbot 2011-05-13 17:27:01
你可以考慮一個採用UITextFieldDelegate
協議並且包含一個字符串的類。
@interface XXBoundString: NSObject <UITextFieldDelegate> {
NSString *string;
... // Other necessary ivars
}
... // string methods that you want exposed
@end
這樣,您就可以把所有的代碼在這個對象。如果驗證方法每個文本字段都不相同,則可以將代碼作爲塊對象接受。
-(void)setValidationBlock:(ValidationBlock)block;
在這裏,你將與XXBoundString
對象替換NSString
S和設置他們每個人是一個特殊的UITextField的委託。
- 1. 將類屬性映射到其他(相同屬性)類
- 2. 將屬性映射到索引列
- 3. MAPtruct - 將字段值映射到屬性
- 4. 將查詢結果映射到屬性
- 5. 如何使用Knockout映射將一個屬性映射到另一個屬性?
- 6. AutoMapper將派生類映射到基類型集合的屬性
- 7. AutoMapper將未映射的屬性映射到Dictionary/ExtensionData
- 8. 映射屬性?
- 9. 屬性映射到NHibernate的
- 10. 流利NHibernate正確地將只讀屬性映射到基類
- 11. 如何將子類屬性映射到Table per Hierarchy中的列?
- 12. 如何使用NHibernate將派生屬性映射到基類上?
- 13. 將類屬性映射到表中的通用列.NET
- 14. NHibernate將類屬性映射到行不是列
- 15. SQLAlchemy將具有空格/括號的列映射到類屬性
- 16. 將類的屬性映射到nHibernate中另一個表的列?
- 17. 如何將CSV中的列映射到C#中的類屬性?
- 18. JAXB未將屬性映射到「自定義」類
- 19. 將條件屬性添加到FluentNHibernate類映射?
- 20. 將實體框架中的屬性映射到不同類型
- 21. MVC3:不將屬性映射到數據庫列的屬性
- 22. 如何將LINQ EntitySet映射到屬性setter中的List屬性?
- 23. 使用AutoMapper的問題將DAL屬性映射到BLL屬性
- 24. 繼承映射類中的重映射屬性
- 25. 如何在NHibernate映射類中查找未映射的屬性?
- 26. 如何使用hibernate映射類屬性?
- 27. 如何映射泛型類的屬性?
- 28. 如何處理尚未映射到NHibernate的其他域類的屬性映射?
- 29. Automapper - 映射到Interface類型屬性而不創建具體類
- 30. 反向映射類屬性到Python中的類
你似乎在尋找'IBOutlet's – 2011-05-13 08:02:33
無不是IBOutlets – 2011-05-13 08:25:31
nielsbot已經得到了我的問題/問題吧 – 2011-05-13 08:26:11