| 
					 Название: Objective-C. Карманный справочник Отправлено: serg_yl от Сентября 26, 2012, 07:57 Всем привет! 
					В книге Дэвида Чиснелла «Objective-C. Карманный справочник, читал про дерективу synthesize и то как она синтезирует методы доступа к переменной объекта (60 или 61 стр.). После описания чего да как, идет предложение "В этом случае компилятор сформирует метод с правильной семантикой для текущего режима компиляции". Не совсем понятно что автор имели ввиду. Пожалуйста, объясните начинающему программисту смысл этого предложения. Спасибо. Название: Re: Objective-C. Карманный справочник Отправлено: kambala от Сентября 26, 2012, 12:10 ну в следующем предложении же всё чётко объяснено: подразумевается используемый режим управления памятью (ручной, ARC, GC), что компилятор сам корректно перегенерирует все синтезированные методы в случае изменения режима управления памятью и разработчику не нужно ничего делать для этого. 
					Название: Re: Objective-C. Карманный справочник Отправлено: serg_yl от Сентября 26, 2012, 13:21 Спасибо! ;) 
					Название: Re: Objective-C. Карманный справочник Отправлено: serg_yl от Сентября 30, 2012, 13:17 Пример такого плана. 
					Есть класс описанный след. образом. Код И есть его реализация с неким содержанием и неким методом. Код В этом случае будет ошибка в строке self.title = nil; - Assigment to readonly property. Что нужно поставить чтобы эта строчка была верной? При этом не прописывая вручную setter и getter методы, и не меняя свойство readonly для тех, кто будет обращаться к этому объекты из вне. Название: Re: Objective-C. Карманный справочник Отправлено: kambala от Сентября 30, 2012, 17:18 вставить в .m перед @implementaion testClass: 
					Код 
 строки лучше конечно объявлять copy а не assign, а то вызывающий код может сделать гадость: Код 
 Название: Re: Objective-C. Карманный справочник Отправлено: serg_yl от Октября 02, 2012, 17:27 Спасибо! :D 
					Название: Re: Objective-C. Карманный справочник Отправлено: serg_yl от Октября 02, 2012, 21:48 Вот еще один примерчик. :) 
					Есть 2 класса, файлы объявления такие: Код 
 Код 
 Программа не запуститься с таким кодом. Почему? И как исправить? По моим соображениям, программа не запуститься потому что для работы с NSObject нужно обязательно подключить #import <Foundation/Foundation.h>. Второе, поменять в первом файле в объявлении класса в угловых скобках название протокола с test2Delegate на test1Delegate и поменять тип переменной с test2 на test1. За тем, аналогичным образом, сделать тоже самое во втором файле. Поправьте меня если не так. Название: Re: Objective-C. Карманный справочник Отправлено: kambala от Октября 03, 2012, 01:02 есть предложение взять и попробовать скомпилировать код, а не строить догадки — компилятор точно знает что можно а чего нельзя. 
					всякие UIKit и Foundation обычно подключают в pch и забывают о них. test2 должен реализовывать test2Delegate а не test1Delegate. обычно в classname.h располагают @interface classname, а не то, как тут написано.  |