доступ к массиву внутри структуры

#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]