#iphone #objective-c
#iPhone #objective-c
Вопрос:
У меня возникли проблемы с доступом к массиву внутри структуры. Как я могу получить доступ к массиву, который хранится в структуре? У меня есть структура, скажем,
@interface FoodDriveRow : NSObject
{
NSMutableArray *teamData;
}
@property (nonatomic , retain) NSMutableArray *teamData;
@end
FoodDriveRow *row ;
теперь я хочу получить доступ к массиву.
Редактировать
@interface TeamRow : NSObject
{
NSString *membername;
NSString *email;
NSString *phone;
}
@property (nonatomic , retain) NSString *membername;
@property (nonatomic , retain) NSString *email;
@property (nonatomic , retain) NSString *phone;
@end
Я пытаюсь сохранить объект TeamRow в массив с помощью
[row.teamData insertObject:tRow atIndex:tIndex1];
и хочу получить значения из массива.
Спасибо…
Комментарии:
1. не могли бы вы, пожалуйста, предоставить дополнительную информацию
2. Я думаю, вам нужно больше узнать об Objective-C и Cocoa, прежде чем задавать такие вопросы.
3. вы задаете вопросы только в процессе обучения…
Ответ №1:
Вам нужно выделить массив, на данный момент ваш массив имеет nil
значение.
Последствия -(id)init
Затем внутри него вы хотите выделить свой массив и добавить в него некоторые объекты:
teamData = [[NSMutableArray alloc] init];
TeamRow *teamRow = [[TeamRow alloc] init];
[teamData addObject:teamRow];
[teamRow release];
Теперь вы можете получать доступ к объектам:
TeamRow *retrievedTeamRow = [teamData objectAtIndex:0];
Ответ №2:
FoodDriveRow* myDriveRow;
Используйте это, как показано ниже, предположим, вы храните объект NSString в массиве
Для добавления
- (void)addObject:(id)anObject
[myDriveRow.teamData addObject:myString];
Для удаления
(void)removeObject:(id)anObject
Для доступа
- (id)objectAtIndex:(NSUInteger)index
Комментарии:
1. да, это правда, я могу хранить значения с помощью [row.TeamData insertObject:TRow atIndex:tIndex]; но я хочу извлекать значения из него
2. @maulik : Используйте —> myObjectStoredInArray = [строка.TeamData objectAtIndex:tIndex];
Ответ №3:
Вы пробовали [row.teamData objectAtIndex:0]
или из самого класса, [self.teamData objectAtIndex:0]
?
Ответ №4:
Я не уверен, что понимаю вас, но я думаю, что вы можете сделать это с помощью row.teamData
Комментарии:
1. по row.TeamData я не смог получить доступ к значению массива с определенным индексом
2. [row.TeamData objectAtIndex:indexValue]; даст вам это
Ответ №5:
[[row teamData] objectAtIndex: i];
где i — индекс в массиве.
Ответ №6:
Это не структура ( struct
), на которую вы ссылаетесь, это class
вызываемая FoodDriveRow
, которая происходит непосредственно из NSObject
. Чтобы получить доступ к свойствам из объекта, вы можете использовать старый стиль:
[[row teamData] objectAtIndex:i]
Или вы можете использовать новый синтаксис dot:
[row.teamData objectAtIndex:i]