В чем разница между методом класса и методом делегата в iPhone - PullRequest
2 голосов
/ 06 июля 2010

У меня есть вопросы по поводу приложения для iPhone. Я зеленый из приложения iPhone. Когда я читаю документ (PDF), скачиваю его с сайта разработчика Apple ( онлайн-версия ). Я обнаружил, что в документе всегда упоминаются разные методы библиотеки.

Есть

1) Метод класса

2) Метод экземпляра

3) Метод делегата

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

скажем, методы делегата это connection:didReceiveAuthenticationChallenge и метод класса sendSynchronousRequest:retruningResponse:error:.

Однако я не понимаю различий между методом класса и методом делегата. Является ли метод класса для всего класса? или весь проект? Что значит делегат? и где я должен поместить код после изменения содержимого делегата? Как я могу вызвать метод?

Может кто-нибудь помочь мне. Большое спасибо.

Это другой вопрос о методе делегата. И я не знаю, как решить проблемы. Пожалуйста, помогите мне. Спасибо. Код статуса HTTP = 0 (iPhone) (цель c)

Ответы [ 3 ]

3 голосов
/ 06 июля 2010

Предположим, у вас есть класс Foo и экземпляр этого Foo* foo.

Затем метод класса - это метод, который отправляется в класс:

     [Foo classMethod];

, а метод экземпляра - это метод, отправляемый в экземпляр:

     [foo instanceMethod];

Метод делегата - это метод, который вызывает экземпляр класса.Таким образом, вы обычно реализуете другой класс Delegate с экземпляром Delegate* delegate и делаете

    [foo setDelegate:delegate];

Затем объект foo вызывает метод делегата delegate в подходящее время:

    [delegate delegateMethod];

Это способ получения события из системного API.

2 голосов
/ 06 июля 2010

Apple предоставляет обширную документацию по основам Objective-C и какао - если вы сомневаетесь, это должно быть вашей первой остановкой.

Язык программирования Objective-C - объекты класса :

[...] определение класса может включать методы, предназначенные специально для объекта класса - методы класса, а не методы экземпляра. Объект класса наследует методы класса от классов над ним в иерархии, так же как экземпляры наследуют методы экземпляра.

Руководство по основам какао - делегаты и источники данных :

Делегат - это объект, который действует от имени или в координации с другим объектом, когда этот объект встречает событие в программе.
Делегирующий объект часто является объектом-ответчиком, то есть объектом, наследуемым от NSResponder в Application Kit или UIResponder в UIKit, который отвечает на пользовательское событие. Делегат - это объект, которому делегировано управление пользовательским интерфейсом для этого события, или, по крайней мере, его просят интерпретировать событие в зависимости от приложения.

И некоторый связанный фон в Язык программирования Objective-C - Протоколы :

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

1 голос
/ 06 июля 2010

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

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