【问题标题】:dynamic initialize any objective C class with property动态初始化任何具有属性的目标 C 类
【发布时间】:2014-08-15 19:20:23
【问题描述】:

我们可以动态初始化任何 Modal 类吗?而不是创建任何具有属性值的 NSObject 类,就像该类中的字符串一样。

默认我们的代码如下: 在 .h 文件中

@interface MyUser : NSObject
@property (nonatomic, strong) NSString *username,*bio,*website;
@end

在 .m 文件中

@implementation InstaUser
@synthesize bio;
@end

要使用我们所做的:

MyUser *sendUser = [[MyUser alloc]init];
sendUser.username = @"JHON";
sendUser.bio = @"abcdcskdfhksfjhfkjsdf";

我不想创建这么多这种类型的模态类,而不是创建任何动态方法来初始化类属性并通过内联代码使用它。

【问题讨论】:

  • 对不起,不明白你的意思。
  • 我已经编辑了这个问题,任何人都可以对此有所了解吗?谢谢你的建议
  • 嗨 Shreeji 你的意思是说你想一次性设置一个类的所有属性,我的意思是使用一种方法?
  • 听起来像 NSMutableDictionary 具有强类型值访问器或 CoreData 模型类。给出一些你想要的代码
  • @iamyogish 。是的,一口气。在使用实例时,不是单个方法,而是至少来自单个类。

标签: ios objective-c iphone properties nsobject


【解决方案1】:

我认为您的意思是一个具有动态声明属性的灵活模型对象,如下所示:

MyModel *user = [[MyModel alloc] init];
user.name = @"name";

MyModel *something = [[MyModel alloc] init];
something.dynamicProperty = @"blahblah";

如果是这样,你不能。请改用NSMutableDictionary,或者考虑通过一些脚本从一个简单的配置文件生成模型类。

【讨论】:

    【解决方案2】:

    您可以使用目标 c 类的运行时功能。 创建一个模型类并在运行时动态添加属性: 更多参考:

    How can I add properties to an object at runtime?

    【讨论】:

    • 谢谢,使用它我可以向我的动态类添加任意数量的属性:class_addProperty([SomeClass class], "name", attrs, 3);
    猜你喜欢
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 2015-11-29
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多