Конкретный Получение индекса NSMutableArray Проблема - PullRequest
0 голосов
/ 10 августа 2011

У меня есть небольшая проблема в моем коде, и я начинаю задаваться вопросом, если это проблема дизайна ..

Я рассматриваю свой класс appDelegate как основную модель для моего приложения. С классом appDel у меня есть viewcontroller. В моем классе appdelegate я храню NSMutableArray, называемый блоками, который содержит все мои объектные модели блоков. Точно так же в моем viewcontroller у меня есть идентичный NSMutableArray, называемый blockViews, который хранит все мои представления объекта блока. Я обновляю представление после получения уведомлений от модели через KVO. В моем viewcontroller я наблюдаю каждое свойство location каждого блока в моем массиве блоков (в делегате приложения) и обновляю соответствующий blockView в blockViews.

Я также настроил его так, чтобы всякий раз, когда я добавлял объект в массив блоков в appDel, он добавлял объект в конец массива blockViews. Теперь моя проблема возникает, когда я пытаюсь удалить объект из массива блоков (в классе appDel). Я не всегда буду удалять последний объект, и поэтому я застрял в том, как получить фактический индекс объекта, который я пытаюсь удалить, чтобы я мог удалить соответствующий индекс в моем blockViews NSMutableArray.

В моем методе наблюдают, что передаваемый объект является классом appDelegate, потому что я наблюдаю весь массив блоков из моего viewcontroller (я реализовал средства доступа к индексированным массивам, чтобы разрешать уведомления KVO), и из-за этого объект является переданный в visibleValueForKeyPath фактически является ссылкой на мой appDelegateClass (что имеет смысл).

Но из этого я не могу получить индекс, какой объект был удален из массива блоков. Кто-нибудь есть какие-либо предложения относительно того, как я мог бы изменить это, чтобы обеспечить индекс или способ получить правильный индекс?

Есть ли способ наблюдать массив для добавления или удаления, и чтобы передаваемый объект в мой метод наблюденийValueForKeyPath был блоком, который был добавлен / удален сам, вместо класса appdelegate?

1 Ответ

2 голосов
/ 10 августа 2011

Разве вы не можете использовать indexOfObject... (несколько вариантов), чтобы получить индекс, а затем удалить его в обоих массивах?(Вы понимаете, что NSMutableArray реализует все методы NSArray, верно?)

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