Objective c 如何从用户输入的NSString创建类的新对象

Objective c 如何从用户输入的NSString创建类的新对象,objective-c,Objective C,我想使用NSString形式的用户输入名称来创建类的新实例。我看过NSClassFromString,但我不明白。我的最终目标是让用户输入费用的名称,然后使用输入的名称(存储在NSString变量中)创建我的类的新实例。然后,用户将输入更多设置新对象实例变量的内容 这一切都将在一个循环中进行,在这个循环中,用户将能够创建他们想要的任意多个新对象,并且这些对象将存储在一个数组中,以便以后存储和使用。但是我一直在研究如何动态创建我的类的新实例。您要创建什么类型的对象?您始终希望创建相同类型的对象,还

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


这一切都将在一个循环中进行,在这个循环中,用户将能够创建他们想要的任意多个新对象,并且这些对象将存储在一个数组中,以便以后存储和使用。但是我一直在研究如何动态创建我的类的新实例。

您要创建什么类型的对象?您始终希望创建相同类型的对象,还是希望用户输入对象类型并创建该类型的对象

如果您希望始终创建相同类型的对象,并将其属性之一设置为用户输入的字符串,那么这很容易

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

MyObject *anObject = [[MyObject alloc] init];
anObject.stringProperty = theTextField.text;
如果希望用户能够输入类名,请不要。这太脆弱了。用户可以很容易地为一个类输入一个类名,该类会导致你的应用程序意外运行,甚至崩溃。您可以使用NSClassFromString,但是让用户指定类名是一个非常糟糕的主意。不要这样做


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

好的,我理解您关于不允许用户选择类名称的说法。我尝试这样做的原因是我不确定如何允许用户创建同一类的多个版本。例如,用户可能想要创建5个不同的费用。我只是不知道如何这样做,然后能够访问5个不同的费用对象中的每一个,这样我就可以添加总计等等。而不是一个开关语句,考虑字典将用户选择映射到要创建的类的名称。您可以直接使用这些键填充列表框。