zoukankan      html  css  js  c++  java
  • Objective-C学习笔记类目、协议

          不是所有的方法都可以被覆盖的!比如:intValue就不能被覆盖!!

          原因正在查找中!

          别人的电脑上却可以!

    类目.h件

    1 #import <Foundation/Foundation.h>
    2 
    3 @interface NSString (Email)
    4 
    5 - (BOOL)stringEmail;
    6 
    7 @end

    类目.m文件

     1 #import "NSString+Email.h"
     2 
     3 @implementation NSString (Email)//类目
     4 
     5 - (BOOL)stringEmail
     6 {
     7     NSRange isSame = [self rangeOfString:@"@"];
     8     if(isSame.location)
     9     {
    10         return YES;
    11     }
    12     else return NO;
    13 }
    14 
    15 @end

    协议(只有.h文件):

     1 这里就定义了一个协议WithProtocl
     2 协议的定义格式:
     3 @protocol  协议名  <父协议>
     4 定义方法
     5 @end
     6 注:定义协议的关键字是@protocol,同时协议也是可以继承父协议的
     7 
     8 协议中定义的方法还有两个修饰符:
     9 @required:这个表示这个方法是其他类必须实现的,也是默认的值
    10 @optional:这个表示这个方法对于其他类实现是可选的
    11 这个就和类似与Java中的抽象类了,如果是abstract修饰的就必须实现,所以如果一个协议中没有@optional修饰的方法,那么这个协议就相当于Java中的接口了。
    12 
    13 这里要注意的是,上面的代码中NSObject不是我们之前说的NSObject类了,而是NSObject协议,他也是OC中第一个协议,这个名字相同在OC中是没有关系的。
    实现

    @interface 子类名 : 父类名 <协议名>  

    @end


  • 相关阅读:
    nodejs学习笔记
    javascript 中常用的判断和循环方法
    javascript中几种数据类型。
    通过Jquery找对象的方法
    js 原生代码找对象的方法
    网页设计时的渐进增强和优雅降级原则
    require.js笔记
    This in JavaScript
    [转] java.lang.IllegalArgumentException: Document base D:apache-tomcat-7.0.47webappsXXX错误
    后台获取前台表单数据
  • 原文地址:https://www.cnblogs.com/liuguan/p/4920758.html
Copyright © 2011-2022 走看看