zoukankan      html  css  js  c++  java
  • ObjectiveC分类

    通过分类的方式可以为已存在的类添加新的方法,甚至不需要源码,有点像C#中的扩展方法。

    这时提供一个例子是把一个字符串转换为驼峰式并且出掉单词空格。

    NSString+CamelCase.h

    #import <Foundation/Foundation.h>
    
    //NSString 表示将要添加分类的类名称,该类必须是已存在的。
    //CamelCase 是为类添加的分类的名称。
    //只能添加方法,不能添加变量。
    //头文件命名惯例:ClassName+CategoryName.h
    @interface NSString (CamelCase)
    
    -(NSString*) camelCaseString;
    
    @end
    

    NSString+CamelCase.m

    #import "NSString+CamelCase.h"
    
    @implementation NSString (CamelCase)
    
    -(NSString*) camelCaseString
    {
        //调用NSString的内部方法获取驼峰字符串。
        //self指向被添加分类的类。
        NSString *castr = [self capitalizedString];
        
        //创建数组来过滤掉空格, 通过分隔符对字符进行组合。
        NSArray *array = [castr componentsSeparatedByCharactersInSet:
                          [NSCharacterSet whitespaceCharacterSet]];
        
        //把数组的字符输出
        NSString *output = @"";
        for(NSString *word in array)
        {
            output = [output stringByAppendingString:word];
        }
        
        return output;
        
    }
    
    @end
    

    main.m

    #import <Foundation/Foundation.h>
    #import "NSString+CamelCase.h"
    
    int main (int argc, const char * argv[])
    {
    
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
        NSString *str = @"My name is bill.";
        NSLog(@"%@", str);
        str = [str camelCaseString];
        NSLog(@"%@", str);
    
        [pool drain];
        return 0;
    }
    

  • 相关阅读:
    什么是架构
    jenkins权限插件配置
    解决Error response from daemon: oci runtime error: container_linux.go:247: starting container process
    解决“/tmp/crontab bad minute”问题
    yml链接mysql路径serverTimezone=UTC的那些坑
    java请求头导致特殊字符为空问题
    使用ssh连接WSL
    系统设计与任务分配
    需求规格说明书
    选题报告
  • 原文地址:https://www.cnblogs.com/chenjunbiao/p/2044073.html
Copyright © 2011-2022 走看看