Форум программистов, компьютерный форум, киберфорум
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
abrams2
0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 15
#1

Зачем нужно свойство @property (assign) - Objective-C

23.09.2014, 21:56. Просмотров 1212. Ответов 6
Метки нет (Все метки)

Для чего нужно свойство property (assign)? Как мне обратиться к полю класса, если оно под @property? Что будет, если убрать его? Я так понимаю это как-то связано с геттерами и сеттерами.
При создании cocoa приложения столкнулся с тем, что поле NSWindow как раз с этим свойством, и поэтому я не могу обращаться к window из другого класса.
Поймите правильно, мне часто приходится обращаться к этому полю (self.window.contenView и всё такое), по-другому добавлять объекты не умею... Так ли нужно, чтобы у этого поля было это свойство? И что тогда мне надо написать в методе другого класса (не AppDelegate), чтобы добавить скажем NSTextField? Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2014, 21:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Зачем нужно свойство @property (assign) (Objective-C):

Cannot assign to a read-only property - Delphi БД
Доброго времени суток. Подскажите, пожалуйста, как из одной DBGrid перенести человека в другую. procedure TForm16.sButton2Click(Sender:...

Cannot assign to a read-only property - Delphi
Доброй ночи или утра. for k:=0 to 33 do begin for j:=0 to min(4,High(Mass)) do begin Form9.Chart1.Series:=TLineSeries.Create(self);...

Qt QML Cannot assign to non-existent property - C++ Qt
Почему у меня считается что сигнала clicked не существует и как исправить? main.qml import QtQuick 2.3 import QtQuick.Controls 1.2...

Ошибка: Cannot assign to a read-only property - Delphi FireMonkey
Добрый день! Нужно сделать программу для добавление строк из одного StringGrid'a в другой. Код написал, но выходит ошибка Cannot assign to...

Зачем в .NET в 2014 г. строгая типизация? Зачем нужно писать Convert.ToInt32(), ToString(), Int32.Parse()? - .NET
По поводу преобразования. Современный препроцессор кода сам определяет, что куда преобразовывать. Если в функцию, принимающую строку,...

Свойства класов - зачем помещать свойство в приват - C++
Очень часто встречал такие классы claas A { public: int getCount( void ) { return count; }; void setCount( int c ) { count =...

6
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
23.09.2014, 23:16 #2
все очень просто
раз и два
0
noname_club
103 / 94 / 10
Регистрация: 01.05.2013
Сообщений: 598
24.09.2014, 01:20 #3
Разбираемся как работает @synthesize

(читать всю тему, истина где-то рядом)
0
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
24.09.2014, 02:24 #4
Цитата Сообщение от noname_club Посмотреть сообщение
(читать всю тему, истина где-то рядом)
читать документацию нужно от первоисточника, а не споры и глупые предположения (тем более, вы то уже точно не блеснули там умом)
0
noname_club
103 / 94 / 10
Регистрация: 01.05.2013
Сообщений: 598
24.09.2014, 03:16 #5
Просто я высказал мысль что в текущих реалиях словой @synthesize потеряло свою значимость.
Также показал реально действующие примеры с сеттерами и геттерами при использовании ARC.

Ваша ссылка это "инструкция" для сеттеров при выключенном ARC где слово @synthesize необходимо http://www.raywenderlich.com/2712/properties-tutorial-for-ios

Ну а оригинальный мануал хорош, но достаточно сложен для понимания с первого раза.
Ибо там изобилуют схемы принципа работы ARC
0
vitali36
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
28.09.2014, 16:16 #6
В основном assign используется для примитивных типов. Например: @property(assign,nonatomic)NSInteger age; Или @property(assign,nonatomic)CGFloat pointOne; Для IBOutlet исп weak, для NSString* и т.д strong
Чтобы обратиться к этому проперти в файле имплементации этого класса пишем: self.age. Проперти можем объявить как в хедере(public), так и в .m (private). Если из другого класса, то сначала создаем объект, затем пишем имя_объекта.age
0
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
29.09.2014, 11:16 #7
Я обычно для примитивных типов просто пишу @property (nonatomic) ... . Есть ли разница между такой декларацией и @property(assign,nonatomic) ... для подобных типов?
0
29.09.2014, 11:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2014, 11:16
Привет! Вот еще темы с ответами:

Entity Framework - Code first. Если есть навигационное свойство в классе, то зачем еще внешний ключ? - C# MVC
public class Author { public int AuthorId { get; set; } public string Name { get; set; } public string...

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? - C++
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может...

Зачем нужно u--? - C++
Как я понимаю это счетчик итераций !! но зачем он ?? #include <iostream> #include <stdio.h> #include <conio.h> using namespace...

Зачем нужно opensource ? - Linux
Спорили тут с одним человеком про смысл opensource. Он утверждает, что opensource якобы стимулирует развитие, но не смог объяснить, чем мой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru