Я уверен, что это полный Noob вопрос ... но я никогда на самом деле никогда не приходилось иметь дело с этим сценарием, прежде чем это я немного озадаченный ...Доступ к NSMutableArray внутри моего пользовательского объекта
Предположим, у меня есть пользовательский объект, на который я позвоню человеку, и каждый человек может иметь массив «владений», своего рода инвентарь, если хотите. Я бы поставил его так:
interface person : NSObject {
NSString *name;
NSMutableArray *posessions;
@property (copy) NSString *name;
@property (copy) NSMutableArray *posessions; // no idea if this is even necessary...
}
Конечно, я хотел бы также синтезировать свои свойства в файле реализации ... Сейчас, на мой реальный объект контроллера, я хотел бы сделать экземпляр моего объекта (или, как правило, массив экземпляров, но для этого примера, одна будет работать нормально ...), а так:
person *aPerson;
Я знаю, что для доступа имена людей, я мог бы сделать вызов, как это:
[aPerson setName:@"Bob"];
и r etrieve это имя, я мог бы использовать это:
aVar = [aPerson name];
То, что я застрял на том, как именно будет идти о добавлении или извлечения объектов к NSMutableArray, расположенные внутри моего лица класса? Предположим, я хочу использовать метод count для NSMutable Array.
Я сделал некоторые проб и ошибок с попытками таких как:
[aPerson.posessions count];
[[aPerson posessions] count];
Аналогично, чтобы добавить объект в массив, я часто использовал:
[someArray addObject:anObject];
, но попытки, как это не работали:
[aPerson.posessions addObject:anObject];
После того, как вы прочитали кучу и искали в Интернете, я не могу найти точно, как мне nteract с этим NSMutableArray в моем пользовательском классе. Я уверен, что это что-то очевидное, что я просто не совсем понял, и это стало своего рода ментальным блоком ...
Кроме того, могу ли я правильно синтезировать свойства доступа для NSMutableArray? Если это так, setX и X не кажутся настолько очевидными с NSMutableArray ... если они просто не копируют весь массив в локальную переменную ...
Возможно, это то, что нужно сделать? использовать методы доступа, чтобы получить весь массив, поместить его в локальную переменную, внести изменения, а затем использовать метод set accessor, чтобы вернуть весь массив в мой объект person?
Может кто-нибудь просветить меня немного по синтаксису, который я должен использовать здесь?
* EDIT *
Я думал, что я хотел бы добавить немного разъяснений на этот вопрос. Мои пользовательские объекты (в приведенном выше примере, мой персональный объект) - это в основном записи базы данных. У меня есть несколько баз данных, с которыми я работаю в моем проекте, например, например:
Person - пользовательский подкласс NSObject, содержащий несколько объектов NSString, а также Ints и BOOL.
personDatabase - массив объектов Person (созданных и контролируемых в пределах моего основного объекта CONTROLLER)
Все множества и получить методы вызываются из «Controller».
То, что я пытался сделать, - это напрямую получить доступ к отдельным объектам, содержащимся в файле personDatabase, из моего объекта Controller. Я сделал это, объявив другой объект таким образом:
Person *activePerson;
Тогда все мои звонки сделаны в настоящее время активной записи лицо (один в данный момент выбран из personDatabase), такие как:
someOutput = [activePerson name];
и т. Д.
Есть ли способ прямого доступа к объектам внутри объекта NSMutableArray внутри объекта activePerson из моего объекта Controller?
Когда вы говорите: «Попытки, подобные этому, не сработали», вы имеете в виду, что он не добавил его в массив или не получил ошибку? –
массив всегда возвращает число 0 независимо от того, каким образом я пытался манипулировать им, поэтому он либо не добавляет объект вообще, либо делает что-то совершенно неожиданное (для меня). Я в основном пытаюсь понять правильный синтаксис, используемый для добавления объекта или чтения объекта из массива. –