Вместо того, чтобы делать self = [objects objectAtIndex:0]
, вам следует перебрать массив и убедиться, что вы получаете правильный объект, например:
for (id object in objects) {
if ([object isKindOfClass:[YourClassName class]])
self = (YourClassName*)object;
}
Тем не менее, я всегда делал это слоем вверх и вытягивал ссылку прямо из UIViewController
. Это нарушает уровень абстракции, так как класс, который просто хочет использовать представление, должен знать, в каком Nib его содержится:
UIViewController *vc = [[UIViewController alloc] initWithNibName:@"MyView" bundle:nil];
YourClassName* view = (YourClassName*)vc.view;
[vc release];