我对iPhone应用程序有疑问。我是iPhone应用程序的绿色。当我从apple开发者网站(online version)阅读文档(PDF)时。我发现该文档总是提到图书馆的不同方法。
有
1)类方法
2)实例方法
3)委托方法
我理解实例方法的用法和含义,它由实例调用。
让我们说代理方法是connection:didReceiveAuthenticationChallenge
和类方法sendSynchronousRequest:retruningResponse:error:
。
但是,我不了解类方法和委托方法之间的差异。是全班的班级方法吗?还是整个项目?代表意味着什么?在修改委托的内容后,我应该在哪里放置代码?我该如何调用该方法?
任何人都可以帮助我。非常感谢你。
关于委托方法的另一个问题。我不知道如何解决问题。请帮我。谢谢。 HTTP status code = 0 (iPhone) (objective c)
答案 0 :(得分:3)
假设您有一个类Foo
及其实例Foo* foo
。
然后,类方法是一个发送到类的方法:
[Foo classMethod];
虽然实例方法是发送到实例的方法:
[foo instanceMethod];
委托方法是类实例调用的方法。因此,您通常使用实例Delegate
实现另一个类Delegate* delegate
,然后执行
[foo setDelegate:delegate];
然后,对象foo
在适当的时间调用delegate
的委托方法:
[delegate delegateMethod];
这是一种从系统API接收事件的方法。
答案 1 :(得分:2)
Apple提供了关于Objective-C和Cocoa基础知识的大量文档 - 如果有疑问,这应该是您的第一站。
The Objective-C Programming Language - Class Objects:
[...]类定义可以包括专门用于类对象类方法的方法,而不是实例方法。类对象从层次结构中它上面的类继承类方法,就像实例继承实例方法一样。
Cocoa Fundamentals Guide - Delegates and Data Sources:
委托是一个对象,当该对象遇到程序中的事件时,该对象代表另一个对象或与另一个对象协同工作。
委托对象通常是响应者对象 - 即从Application Kit中的NSResponder或UIKit中的UIResponder继承的对象 - 响应用户事件。委托是委托对该事件的用户界面进行控制的对象,或者至少要求以特定于应用程序的方式解释该事件。
The Objective-C Programming Language - Protocols中的一些相关背景:
类和类接口声明与特定类关联的方法 - 主要是类实现的方法。另一方面,非正式和正式协议声明独立于任何特定类的方法,但任何类,也许许多类可能实现这些方法。
答案 2 :(得分:1)
委托方法是在类委托协议中定义的方法。它们被添加到您的类中,但您的类必须具有委托协议的对象。它们通常由对象使用,但您必须为对象定义。 NSTableView和UITableView使用委托方法来填充其数据。类方法只是您在界面中定义的方法。