`

OC-协议

阅读更多

Objective-c之协议

协议的概念: 协议是多个类共享一个方法的列表。其实协议的概念已经说明了它本身的目的。

协议定义:

@protocol Printing

-(void) print;

@end

协议的使用:

#import <Foundation/NSObject.h>

#import "Printing.h"//这里使用是双引号

@interface Fraction:NSObject<Printing,NSCopying>{

      //定义变量

}

//定义一些接口方法

@end

 

举例子:

Complex.h

#import <Foundation/NSObject.h>

#import "Printing.h"

 

@interface Complex:NSObject<Printing>{

    double real;

    double imaginary;

}

-(Complex*) initWithReal:(double) r andImaginary:(double) i;

-(void) setReal:(double) r;

@end

Complex.m

#import "Complex.h"

#import <stdio.h>

 

@implementation Complex

......

-(void) print{

    //实现

}

@end

main.m

#import <stdio.h>

 

#import "Complex.h"

int main(int argc,const char *argv[]){

      //创建一个新的实例

      Complex *comp = [[Complex alloc] initWithReal : 5 andImaginary:15];

      id <Printing> printable;

 

      //print complex

      printable = comp;

      printf("The complex number is:");

      [printable print];

      printf("\n");

 

      //判断对象是否遵守了协议规则

      //这里应该是false

      if([comp conformsToProtocol:@protocol(NSCopying)] == YES){

             printf(".....");

      }

      return 0;

}

 

 

 

分享到:
评论

相关推荐

    OC-图片浏览器,OC-图片浏览器

    1. **Objective-C基础**:Objective-C是C语言的超集,引入了Smalltalk式的面向对象特性,如消息传递、类别(Category)、协议(Protocol)等。了解这些基础知识是理解OC-图片浏览器的前提。 2. **UIImage与...

    前端开源库-oc-client

    5. `LICENSE`:开源协议,规定了其他人可以如何使用和分发这个库的代码。 6. `tests` 目录:测试用例,确保代码的功能正确性和稳定性。 对于想要使用oc-client的前端开发者来说,首先需要理解OC平台的API规范,然后...

    OC-串行-BreakPoint-tableview

    在iOS开发中,"OC-串行-BreakPoint-tableview"这一主题主要涉及到Objective-C编程语言、串行队列(Serial Queues)以及UITableView的使用。这些知识点是iOS应用开发中的核心部分,尤其是在构建用户界面时。下面我们...

    MVC-OC-DEMO

    例如,使用IBOutlet和IBAction连接视图和控制器,使用协议(Protocol)和代理(Delegate)模式在控制器之间进行通信,以及利用KVO(Key-Value Observing)监听模型的变化。 **总结** "MVC-OC-DEMO"是一个用...

    OC-WKWebView(OC->JS)

    本篇文章将深入探讨如何在Objective-C(OC)中使用`WKWebView`与JavaScript进行交互。 ### 1. `WKWebView`的引入 首先,我们需要在项目中引入`WebKit`框架,这可以通过在` Bridging-Header.h`文件中添加`#import ...

    spi-oc-tiny.rar_V2

    总结来说,"spi-oc-tiny.c"源代码文件是实现Linux系统对SPI设备通信的关键,它封装了SPI协议的细节,提供了与硬件交互的接口,使得应用程序可以方便地通过标准的Linux系统调用来访问SPI设备。通过对这个驱动程序的...

    OC - Swift 混编Demo

    在iOS应用开发中,Objective-C(OC)和Swift是两种主要的编程语言。Apple自2014年推出Swift以来,它迅速获得了开发者社区的广泛欢迎,但Objective-C作为历史更悠久的语言,仍然在很多现有项目中占据主导地位。因此,...

    oc-frontend-源码.rar

    10. **许可证文件**:如果这是一个开源项目,可能会包含LICENSE文件,明确项目的许可协议。 11. **其他工具和库**:如Webpack配置文件(webpack.config.js)、Babel配置(.babelrc)等,用于代码转换和优化。 为了...

    PyPI 官网下载 | rest-oc-0.3.1.tar.gz

    4. `LICENSE`:项目的授权协议,定义了其他人可以如何使用和分发这个项目。 5. `src`或`rest_oc`目录:实际的源代码存放处,可能包含模块和类。 6. `tests`目录:测试代码,用于确保项目功能的正确性。 7. `docs`...

    OC-高度自定义封装tabbar框架

    本文将详细解析"OC-高度自定义封装tabbar框架"这一主题,探讨如何通过Objective-C(OC)对原生TabBar进行自定义封装,以实现更高的灵活性和扩展性,同时保持系统的稳定性和兼容性。 首先,我们要明白原生TabBar的...

    千锋OC源码

    千锋OC源码:目录 OC语言教程-第1讲-基本语法 OC语言教程-第2讲-点语法 ...OC语言教程-第7讲-协议 OC语言教程-第8讲-协议代理设计模式 OC语言教程-第9讲-Category语法 OC语言教程-第10讲-Blocks语法

    iOS OC-JS完美交互

    JS调用OC方法通常通过定义JavaScript与Native的通信协议实现,这些协议包括注入JavaScript对象或使用`WKScriptMessageHandler`。 1. **注入JavaScript对象:** - UIWebView可以使用`evaluateJavaScript:...

    OC-天气预报源码

    8. **适配器和代理模式**:应用的视图与数据之间可能通过UITableView或UICollectionView进行交互,这通常需要实现DataSource和Delegate协议,来填充和响应用户操作。 9. **代码组织**:良好的代码组织是大型项目的...

    OC - 内置Safari

    URL Scheme是一种自定义的协议,可以让应用之间通过特定的URL进行通信。例如,你可以创建一个自定义的URL Scheme,使得用户点击一个链接时,可以直接在你的应用中打开。 Universal Links则是一种更现代的解决方案...

    OC-m3u8视频截图

    总结来说,"OC-m3u8视频截图"涉及到的技术包括Objective-C编程,HLS流媒体协议,m3u8文件格式,以及AVFoundation框架中的视频处理功能。理解这些知识点,开发者就能有效地处理和截图m3u8视频流,为用户提供流畅且...

    OC-无tabbarDemol

    7. **Delegation** 和 **Notification**:在没有TabBar的情况下,应用可能需要通过代理协议或通知来监听用户的行为,并在不同视图控制器间传递数据和事件。 8. **Programmatic UI**:虽然大部分应用可能使用...

    OC-KVO转换模型 SetValueKey

    若手动实现getter和setter,需遵循特定的协议`NSKeyValueObservingOptionNew`和`NSKeyValueObservingOptionOld`。 3. **通知机制**:KVO通过`NSKeyValueChangeNotificationIsPrior`选项控制是否在改变前发送通知,...

    ios-iOS-OC-页面传值的5种方法.zip

    在iOS开发中,页面间的传值是日常开发中不可或缺的一部分,尤其对于Objective-C(简称OC)的开发者来说,掌握各种传值方式能显著提高代码的灵活性和可维护性。本资料"ios-iOS-OC-页面传值的5种方法.zip"主要探讨了五...

    OC-WKWebView(JS->OC)

    这里,`self` 必须遵循`WKScriptMessageHandler`协议,实现`userContentController:didReceiveScriptMessage:`方法来接收来自JavaScript的消息: ```objc - (void)userContentController:(WKUserContentController ...

    OC-WKWebView(本地数据) 源码

    为了与WKWebView进行交互,例如执行JavaScript代码或接收JavaScript回调,我们需要实现`WKScriptMessageHandler`协议。通过设置`WKUserContentController`并添加用户脚本,可以监听和响应JavaScript消息。例如: ``...

Global site tag (gtag.js) - Google Analytics