Форум программистов, компьютерный форум CyberForum.ru

@property (readonly) - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C перевод с++ на obj-c http://www.cyberforum.ru/objective-c/thread793156.html
Привет всем. можно этот код переписать на objc? http://my-tech-talk.blogspot.ru/2012/06/digit-recognition-with-opencv.html
Objective-C Realtime video effects Есть ли возможность при съемке видео накладывать изображения в зависимости от положения головы человека? Ну вот типа того Ну и каким образом тогда это сделать :) http://www.cyberforum.ru/objective-c/thread790852.html
Objective-C malloc
всем привет полез с UIimage поиграца уперся в стену везде в туториалах встречаю строчки типа GLubyte *buffer = malloc(sizeof(GLubyte)*myDataLength); или ccColor4B *buffer = malloc(sizeof(ccColor4B)*numPixels ); но мне компилятор говорит что не суй void в переменную типа char или другого типа WTF?
Можно ли разрабатывать приложения для iOS на старом Mac? Objective-C
Здравствуйте! Хотелось бы заняться разработкой приложений для iOS 6...и т.д., а для начала, конечно, научиться этому. У меня есть старый MacBook 2007 года, который НЕ поддерживает установку Mountain Lion. Есть ли возможность на этом ноуте в дальнейшем разрабатывать и тестировать приложения для iOS 6.1 и последующих? На сайте Apple я понял, что нужен именно Mountain Lion. Можно ли это как-то...
Objective-C Метод allControlEvents класса UIControl http://www.cyberforum.ru/objective-c/thread783831.html
Всем привет! Я конечно знаю, что спрашивать помощи по вопросам тестов не вполне этично, но я самостоятельно практически все ответил правильно, и лишь ломаю голову над парой оставшихся, уж очень мудреных. Может быть кто поможет прояснить :) Вопрос звучит так: When using a Cocoa framework, what will allControlEvents method of UIControl class return in case it fails to create the object?
Objective-C Video with tags как организовать такое же слежение за видео, как на этом сайте: как на вот этом сайте чтобы в определенной точке времени показывался тег, на который можно нажать и перейти на слой поверх видео, где можно перейти к презентации слайдов места тегов передается в файле json Добавлено через 57 минут а так же, как сделать так, чтобы приложение перехватывало все видео из браузера при клике... подробнее

Показать сообщение отдельно
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
26.02.2013, 12:38     @property (readonly)
Цитата Сообщение от sandye51 Посмотреть сообщение
Если да, то почему нет никакого warning'a в записи?
Всмысле?

readonly гвоорит о том, что вы не сможете написать:
Objective-C
1
instance.stringValue = @"asd";
Сеттер не сгенерируется.
assign\retain(либо weak\strong в ARC) - Ну тут я думаю и из доки все понятно(насчет увеличения retainCount'a).

Цитата Сообщение от sandye51 Посмотреть сообщение
По мне так эти мутаторы несовместимы - если есть readonly, то assign, retain, copy уже не нужен
Немного не верно, ибо если вы напишете в интерфейсе просто readonly, то пользователю этого интерфейса не будет ясно, что именно происходит(Читайте - неявное поведение). А если Вы укажете - copy дополнительно, и изнутри к примеру напишите
Objective-C
1
2
3
4
5
6
7
- (id)init {
  self = [super init];
  if (self) {
    _stringValue = [@"asd" copy]; //либо переопределите сеттер, используя readwrite внутреннуго интерфейса
  }
  return self;
}
- то станет яснее извне, что там именно с этим объектом происходит.

насчет переопределения:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//.h -file
 
@interface Foo 
 
@property (nonatomic, readonly, copy) NSString *stringValue; // гвоорит нам о том, что пропертя извне "только читабельна".
 
@end
 
//.m - file
@interface Foo() 
 
@property (nonatomic, readwrite, copy) NSString *stringValue; // гвоорит нам о том, что изнутри пропертя "писабельна".
 
@end
А насчет copy/retain - ну если вы напишете assign - то это сразу Вас поставит в неловкое положение. То есть типа объект есть, но ретэйнить "его" не нужно, соответственно в лучшем случае он у вас сразу задеаллочится, и Вы быстро отловите ошибку. В худшем - она Вам мозг поклюет.

copy - используется для тех объектов, которые "мутабельны".
И если у Вас там окажется NSMutableString - и вы поменяете ее, в вашей проперте(если retain стоит) - окажется измененное значение. А это нехорошо.

assign может использоваться тогда, когда Вам не нужна "жесткая связка". Почитайте про strong\weak(как их ARC разруливает) в дополнение к этому.
основной использование - "не объекты"(скалярные типы данных), а также указатели на делегатов. Вам же не нужно, чтобы делегат заретейнил того, чей он делегат?
 
Текущее время: 14:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru