是否可以创建一个以NSString的值命名的对象?如果是这样,怎么样?创建以NSString的值命名的对象 - 是否有可能?
2
A
回答
3
试试这个:
Class theClass = NSClassFromString(someString);
id object = [[theClass alloc] init];
1
如果你的意思是字符串指定类名,然后是很容易做到这一点使用的NSClassFromString功能来查找相应的类“工厂”对象:
NSString* myClassName = @"NSNumber";
id myNewObject = [[NSClassFromString(myClassName) alloc] init];
// myNewObject is an NSNumber...
这个例子很有意思,但你明白了。
1
是:
//In your header
extern NSString *FrobnitzerCalibrationHigh;
extern NSString *FrobnitzerCalibrationMedium;
extern NSString *FrobnitzerCalibrationLow;
//In your implementation
NSString *FrobnitzerCalibrationHigh = @"FrobnitzerCalibrationHigh";
NSString *FrobnitzerCalibrationMedium = @"FrobnitzerCalibrationMedium";
NSString *FrobnitzerCalibrationLow = @"FrobnitzerCalibrationLow";
可以使一对夫妇宏,把他们在您的前缀头:
//In your header
DECLARE_STRING_CONSTANT(FrobnitzerCalibrationHigh);
DECLARE_STRING_CONSTANT(FrobnitzerCalibrationMedium);
DECLARE_STRING_CONSTANT(FrobnitzerCalibrationLow);
//In your implementation
DEFINE_STRING_CONSTANT(FrobnitzerCalibrationHigh);
DEFINE_STRING_CONSTANT(FrobnitzerCalibrationMedium);
DEFINE_STRING_CONSTANT(FrobnitzerCalibrationLow);
:
//Semicolons intentionally omitted (see below)
#define DECLARE_STRING_CONSTANT(name) extern NSString *name
#define DEFINE_STRING_CONSTANT(name) NSString *name = @#name
然后在你的类的头和实现使用它们
(宏忽略了分号,因为它们的用法将提供它们。如果宏具有分号作为分号在这种情况下,扩展将是extern NSString *FrobnitzerCalibrationHigh;;
-无害,但如果我这样做会影响我,主要是因为它在其他情况下并非无害)。
相关问题
- 1. 是否有可能创建永久的对象别名
- 2. 是否可以创建没有URL的新对象?
- 3. 是否有可能强制JVM创建堆栈以外的堆对象?
- 4. 是否有可能为DateTime对象创建C#'指针'?
- 5. 是否有可能在Python中为SPSS创建数据对象
- 6. 是否有可能从JSON创建一个Parse对象
- 7. 是否可以命名在oracle中创建主键时创建的索引?
- 8. 是否有可能在django中创建自己的createsuperuser命令?
- 9. 是否有可能在现有的对象追加值 - jquery
- 10. 是否可以创建类似于字符串的对象池?
- 11. 是否可以在Unity中创建循环引用的对象?
- 12. 是否可以根据用户的输入创建类对象?
- 13. 是否可以创建* CCAnimation对象的std :: map?
- 14. 是否可以命名QThread?
- 15. 是否可以在C#中的参数名称中创建一个对象?
- 16. 是否可以创建2个可能不具有相同值的字段?
- 17. 对象字面值是否返回新创建的对象?
- 18. SnakeYAML:是否有可能获得对象的锚定名称?
- 19. 使用单个命令创建两个对象是否可行?
- 20. 是否可以加粗NSString?
- 21. 创建Objective-C文字对象,如NSString
- 22. 是否有可能创建一个Tcl返回值的GUI?
- 23. 创建动态命名对象
- 24. 是否有可能创建一个并非绝对的Uri?
- 25. 是否有一个管道命令来创建标签对象?
- 26. 是否有可能颠倒c#命名空间的别名?
- 27. NSArray对象的NSString值
- 28. 是否有可能更改httpservletrequest对象
- 29. Objective-C块对象是否可以有关联的对象?
- 30. 是否可以为接口类型创建对象