NSMutable Array в другом классе - PullRequest
0 голосов
/ 01 апреля 2011

Я объявил NSMutableArray в моем .h и я установил свойство и синтезировал, но если я хочу использовать этот массив в другом классе? Как я?

Ответы [ 2 ]

2 голосов
/ 01 апреля 2011

Основная идея здесь заключается в том, что в вашем исходном классе массив ссылается на указатель. Ваш оригинальный класс выделит это и предположительно загрузит это. Другим частям вашей программы можно передать содержимое свойства, которое является указателем, назначить его собственному держателю указателя и использовать его так, как если бы вы объявили его там.

Так что, если MyClass имеет свойство MyArray, которое является NSMutableArry *, то MyArray является держателем указателя (просто «указатель» для краткости).

Ваша программа может затем создать новый указатель, такой как NSMutableArray * ThatArray, а затем просто сделать:

MyClass *aClass = [[MyClass alloc] initWithMyInitStuff];
NSMutableArray *ThatArray = aClass.MyArray;

NSLog("Count of ThatArray: %d", [That.Array count]);
1 голос
/ 01 апреля 2011

Если вы, как вы заявили, создали @property для NSMutableArray, вы можете легко получить к нему доступ в других классах по имени. Например:

#import "MyClass.h"

...

MyClass *myClass = [[MyClass alloc]init];
NSMutableArray *array = [myClass.myArray mutableCopy];

(Примечание: я не использовал управление памятью.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...