0

我想使用 NSString 形式的用户输入名称来创建我的类的新实例。我见过 NSClassFromString 但我不明白。我的最终目标是让用户输入费用的名称,然后使用输入的名称(存储在 NSString 变量中)创建我的类的新实例。然后用户将输入更多内容来设置新对象的实例变量。

这一切都将在一个循环中,用户将能够根据需要创建任意数量的新对象,并且这些对象将存储在一个数组中以供以后存储和使用。但我坚持如何动态创建我的类的新实例。

4

1 回答 1

0

你想创建什么样的对象?你总是想创建同一种对象,还是想让用户输入对象类型,然后创建那个类型的对象?

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

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

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

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

相反,让用户从不同选项列表中选择(使用按钮、表格视图、步进器或其他东西),然后使用 switch 语句创建请求类型的新对象。对于用户可以创建的每种受支持的对象类型,您都有一个案例。

于 2012-06-23T14:21:44.983 回答