Установка свойств для анонимно созданных объектов в Objective C - PullRequest
1 голос
/ 04 ноября 2011

если у меня есть метод / функция в OBJ-C, которая возвращает объект.Я часто использую:

    return [[MyEventArgs alloc] init];

// Также хочу установить для свойства MyEventArgs Height значение 100.

Если я хотел установить некоторые свойства для этого объекта при его создании.Как я могу это сделать?В C # я могу сделать:

return new MyEventArgs{Height = 100};

Каков синтаксис для этого в OBJ-C?

Еще один вопрос, касающийся той же темы: могу ли я динамически создавать объекты и свойства в OBJ?-C, как в C #?

, например, я могу сделать это в C # (функция, которая отлично работает при работе со ссылкой / лямбда)

 List<object> aList = new List<object>();
 aList.Add(new { Height = 100 });

Как мне сделать это в OBJ-C?

// Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

Таких сокращений нет, но вы, например, можете создать собственный конструктор, такой как

+ (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]];
1 голос
/ 04 ноября 2011

В Objective-C такой краткости нет.Вам нужно было бы назвать переменную каким-либо образом, чтобы вызвать соответствующие методы для нее.

...