iphonesdk中的协议
我对iphone中的@protocol--@end感到困惑,它到底是什么意思。为什么我们要用这个。为类提供附加方法是一种功能吗。。?我不确定 请帮帮我 谢谢iphonesdk中的协议,iphone,protocols,Iphone,Protocols,我对iphone中的@protocol--@end感到困惑,它到底是什么意思。为什么我们要用这个。为类提供附加方法是一种功能吗。。?我不确定 请帮帮我 谢谢 Shibin协议相当于Java中的接口 @protocol Printable // Printable interface - (void) print; @end @interface MyClass: NSObject <Printable> { ... } // MyClass extends NSObject imp
Shibin协议相当于Java中的接口
@protocol Printable // Printable interface
- (void) print;
@end
@interface MyClass: NSObject <Printable> { ... }
// MyClass extends NSObject implements Printable
@协议相当于Java中的接口
@protocol Printable // Printable interface
- (void) print;
@end
@interface MyClass: NSObject <Printable> { ... }
// MyClass extends NSObject implements Printable
@协议可用于定义委托 例如:
@protocol SomeDelegate
- (void)delegateActionCompleted;
@end
@interface MyClass: NSObject {
id<SomeDelegate> _delegate;
}
@end
@协议可用于定义委托 例如:
@protocol SomeDelegate
- (void)delegateActionCompleted;
@end
@interface MyClass: NSObject {
id<SomeDelegate> _delegate;
}
@end
协议用于声明将由许多对象或类使用的功能 举个例子,您正在开发一个鸟类数据库。因此,您将使用bird作为基类,并将继承bird来创建您自己的bird。所以在bird类中,您将不会有任何定义,而是所有鸟类都必须继承的一些行为。就像鸟儿会飞一样,有着那样的翅膀。因此,您需要声明所有这些行为并在派生类中实现它们。因为可能有一些鸟飞得很高很长,有些会飞很短的距离 为此目的,使用@协议。使用@protocol可以声明一些行为。并在其他类中使用这些行为来实现该行为
这将避免反复声明同一方法的开销,并确保在类中实现该行为。协议用于声明将由许多对象或类使用的功能 举个例子,您正在开发一个鸟类数据库。因此,您将使用bird作为基类,并将继承bird来创建您自己的bird。所以在bird类中,您将不会有任何定义,而是所有鸟类都必须继承的一些行为。就像鸟儿会飞一样,有着那样的翅膀。因此,您需要声明所有这些行为并在派生类中实现它们。因为可能有一些鸟飞得很高很长,有些会飞很短的距离 为此目的,使用@协议。使用@protocol可以声明一些行为。并在其他类中使用这些行为来实现该行为
这将避免反复声明相同方法的开销,并确保在类中实现该行为。最好使用
if (self.delegate && [self.delegate conformsToProtocol:@protocol(YourProtocolName)]) {
...
}
检查代理是否真正符合指定的协议。最好使用
if (self.delegate && [self.delegate conformsToProtocol:@protocol(YourProtocolName)]) {
...
}
检查学员是否符合指定的协议。另请参见此问题:另请参见此问题: