У меня есть два класса. Один был в основном создан с использованием тех же файлов, что и второй, с некоторыми другими модификациями, но они по сути одинаковы, особенно в отношении их файлов объявлений (которые имеют что-то подобное) ...
@protocol myClassDelegate <NSObject>
// delegate protocol definition
@end
@interface myClass : UIView {
id myObject;
UIView *oneView;
}
@property(nonatomic,assign) id<myClassDelegate> delegate;
@property(nonatomic,retain) UIView *oneView;
и тогда у меня есть @synthesize oneView, делегат; на .m
Код, который вы видите, является общим для обоих классов.
Внутри реализации обоих классов я несколько раз использую оба объекта, например:
[delegate doStuff]; // <-- do you see this blue delegate here? Xcode put it green when it is declared on .h first.
в моем первом классе каждое вхождение oneView или делегата показано зеленым цветом Xcode (см. Изображение ниже). На втором занятии они показаны черным. Я вообще считаю, что это зеленое слово является своего рода подтверждением того, что переменная была идентифицирована в объявлении и является «глобальной» для этого класса. Обычно черные переменные означают локальные экземпляры.
Вопрос в том, что у меня возникают проблемы с удалением одной из этих переменных без моего намерения именно в классе, где оно показано черным.
Эта переменная не освобождается в классе (за исключением dealloc), но объекты, созданные с использованием обоих классов, живут все время, пока приложение работает.
Что может быть не так?

заранее спасибо.