#iphone #objective-c #ios #xcode
#iPhone #objective-c #iOS #xcode
Вопрос:
У меня есть UIView, который получает init от Viewcontroller, однако, когда я пытаюсь передать ему массив, массив возвращается во время инициализации. Но если я создам кнопку в UIView, а затем проверю переданный массив, я увижу, что он загружен правильно. Итак, мой вопрос заключается в следующем: как я могу передать массив в UIView, чтобы при выделении и инициализации UIView я мог загружать массив, а не после.
Спасибо за всю помощь.
Комментарии:
1. можете ли вы опубликовать код того, что вы пробовали… Исходя из этого, вам нужно создать новую
initWithArray:(NSArray *)array
функцию, которая сохранит массив, о котором вы говорите
Ответ №1:
Добавьте в свой подкласс UIView что-то вроде
- (id)initWithFrame:(CGRect)frame dataArray:(NSArray*)array_ {
self = [super initWithFrame:frame];
if (self) {
// Initialization code
myArray = array_;
}
return self;
}
И myArray
должно быть полем (или свойством) вашего класса.
Комментарии:
1. почему ‘array_’ вместо просто ‘array’?
2. Да, это завершающее подчеркивание, на мой взгляд, действительно плохой стиль. Для чего большинство людей используют его, и даже некоторые примеры кода Apple делают это, так это для обозначения переменных экземпляра . Зачем ломать эту привычку и использовать ее для параметров метода? Очень запутанно.
3. Спасибо, что заметили это, ребята. Возможно, мне нужно опубликовать здесь еще немного кода, чтобы исправить мой стиль 🙂