C# 在Objective C中设置匿名创建的对象的属性

C# 在Objective C中设置匿名创建的对象的属性,c#,objective-c,xcode,properties,anonymous-types,C#,Objective C,Xcode,Properties,Anonymous Types,如果我在OBJ-C中有一个返回对象的方法/函数。我经常使用: return [[MyEventArgs alloc] init]; //还希望将MyEventTargets属性高度设置为100 如果我想在创建对象时设置该对象的一些属性。我该怎么做? 在C#中,我可以做到: return new MyEventArgs{Height = 100}; 在OBJ-C中执行此操作的语法是什么 关于同一主题的另一个问题是,我是否可以像在C#中那样在OBJ-C中动态创建对象和属性 例如,我可以在

如果我在OBJ-C中有一个返回对象的方法/函数。我经常使用:

    return [[MyEventArgs alloc] init];
//还希望将MyEventTargets属性高度设置为100

如果我想在创建对象时设置该对象的一些属性。我该怎么做? 在C#中,我可以做到:

return new MyEventArgs{Height = 100};
在OBJ-C中执行此操作的语法是什么

关于同一主题的另一个问题是,我是否可以像在C#中那样在OBJ-C中动态创建对象和属性

例如,我可以在C#中实现这一点(在使用link/lambda时,这是一个非常好的特性)

List aList=newlist();
aList.Add(新的{Height=100});
我如何在OBJ-C中实现这一点


//提前谢谢

Objective-C中没有这样的简写。您必须以某种方式命名变量以调用相应的方法。

没有这样的简写,但您可以创建一个自定义构造函数,如

+ (id)myObjectWithHeight:(CGFloat)height;
构造函数代码为:

+ (id)myObjectWithHeight:(CGFloat)height {
  MyObject *object = [[[MyObject alloc] init] autorelease];
  object.height = height;
  return object;
}
像这样使用它

NSArray *array = [NSArray arrayWithObject:[MyObject myObjectWithHeight:100]];

上述两个例子都不能在Obj-C中完成?这有点奇怪。我发现自己很想这样做。额外的语法真的不符合我的意思。不过,谢谢你的回答!你可以创建一些C宏来帮助你。或者有一个类似于C结构的第一个示例的初始化速记,只是不适用于完整对象。这严格来说不是真的,OP需要的是一个自定义init方法,唯一不能做的事情是决定设置或不设置哪些属性,但可以创建自定义init方法(或Eugenes answer之类的方便方法)西蒙:这是两个不同的问题。他的想法是,他想要一个速记,而不需要为每个集合创建新的初始值设定项。与C结构初始化类似,CGP={.x=1.0f,.y=2.0f}来自.NET背景,我完全知道他想做什么,但是说创建对象然后调用一些访问器方法并不能特别解决他的问题,如果他总是想在安装时设置对象的高度,那么为什么不把它放在自定义init方法中呢?你没有给他这个解释。是的。我当然可以这样做。或者只定义一个自定义的init构造函数。但那不是我想要的。
NSArray *array = [NSArray arrayWithObject:[MyObject myObjectWithHeight:100]];