我想通过简单地将所需的类名传递到我的工厂来创建任何合适的对象的实例,如下所示:
myClass * variable = [factory makeObjectOfClass:myClass];
makeObjectOfClass:方法看起来像这样:
- (ID)makeObjectOfClass:(CLASSname)classname{ assert([classname instancesRespondToSelector:@selector(reset)]); ID newInstance = [classname createInstance]; [managedobjects addobject:newInstance]; return newInstance;}
有没有办法将类名传递给一个方法,就像我已经使用上面的makeObjectOfClass的(CLASSname)classname参数一样?
为了完整起见,这里是为什么我要管理所有的对象。我想通过调用[出厂设置]来一次性重置完整的对象集合。
- (voID)reset{ [managedobjects makeObjectsPerformSelector:@selector(reset)];}解决方法 您可以使用以下函数将字符串转换为类:NSClassFromString
Class classFromString = NSClassFromString(@"MyClass");
在你的情况下,你最好直接使用Class对象。
MyClass * variable = [factory makeObjectOfClass:[MyClass class]];- (ID)makeObjectOfClass:(Class)aClass{ assert([aClass instancesRespondToSelector:@selector(reset)]); ID newInstance = [aClass createInstance]; [managedobjects addobject:newInstance]; return newInstance;}总结
以上是内存溢出为你收集整理的objective-c – 如何将类名作为参数传递给可可中的对象工厂?全部内容,希望文章能够帮你解决objective-c – 如何将类名作为参数传递给可可中的对象工厂?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)