Я бы сказал, не слишком подробно изучая, что вы должны убедиться, что каждый объект в IB связан через свойства, которые сохраняются, с владельцем файла.Это причина номер один, которую я видел для сбоев.Как только что-то упоминается или даже не упоминается, но не является каким-либо образом дочерним владельцем файла, это вызывает сбой.Начните без соединений, без делегатов, кроме тех, которые необходимы для создания этой цепочки.Если это работает без сбоев, установите одно соединение, затем протестируйте и повторите.Сбои прокрутки почти всегда происходят, потому что что-то было автоматически освобождено.
Если вы получили объект b без использования [[B alloc] init], ожидайте, что он исчезнет после того, как цикл выполнения продолжится.(После первого раза вы можете прикоснуться к своему виду).Лечение состоит в том, чтобы сказать объекту b сохранить, как правило, после ссылки на него в другом объекте,
-(void)connectTo:(B*)b {
self.myReference = b
[B retain];
}
. Другое решение этого вопроса - через IB.в заголовках сделайте это:
@interface a : NSObject{
id<UIPickerViewDelegate> myReferenceToDelegate;
}
@property(nonatomic, retain) IBOutlet id<UIPickerViewDelegate> myReferenceToDelegate
@end
Затем вам нужно перейти в конструктор интерфейса и перетащить соединение из myReferenceToDelegate на объект A на объект B. После того, как это будет сделано, убедитесь, что владелец файла имеет этот типсоединения с A.
Соединения Thiese Interface Builder могут быть сложными, потому что они не рассказывают вам много о проблеме, и они не делают так много, как вы могли бы сделать за кулисами.
Удачи в решении этого вопроса.