如何从用户输入的NSString中创建我的类的新对象

时间:2012-06-23 13:47:46

标签: objective-c

我想以NSString的形式使用用户输入的名称来创建我的类的新实例。我见过NSClassFromString,但我没有得到它。我的最终目标是让用户输入费用名称,然后使用输入的名称(存储在NSString变量中)来创建我的类的新实例。然后,用户将输入一些将设置新对象的实例变量的内容。

这将全部处于循环中,用户将能够根据需要创建任意数量的新对象,并将对象存储在数组中以供后续存储和使用。但我仍然坚持如何动态创建我的班级的新实例。

1 个答案:

答案 0 :(得分:0)

你想创造什么样的物体?您是否总是想要创建相同类型的对象,或者您是否想让用户输入对象类型,并创建该类型的对象?

如果您想要始终创建相同类型的对象并将其中一个属性设置为用户输入的字符串,那很容易。

将UITextField和按钮添加到视图控制器。在按钮的操作方法中,从文本字段中获取文本值,并使用它来设置对象中的文本:

MyObject *anObject = [[MyObject alloc] init];
anObject.stringProperty = theTextField.text;

如果您希望用户能够输入班级名称,请不要。那太脆弱了。用户可以轻松输入类的类名,这会导致您的应用程序出现意外行为,甚至崩溃。您可以使用NSClassFromString,但让用户指定类名是一个非常糟糕的主意。不要这样做。

相反,让用户从不同选项列表中选择(使用按钮,表视图或步进器或其他东西),然后使用switch语句创建所请求类型的新对象。您将拥有用户可以创建的每种受支持对象类型的大小写。