将C++的标识符转成OC的标识符

3.将C++的标识符转成OC的标识符
 C++的标识符和OC一样由数字字母下划线组成,打头的不是数字。当标识符超过一个单词,
 C++采用全字母小写,单词间用下划线连接的书写规范,如:
 bei_jing
 OC采用除第一个单词外,其余单词首字母大写的书写规范,如:
beiJing

 //传入C++标识符,返回OC标识符

 */
+ (NSString *)objcIdentifierFromCppIdentifier:(NSString *)idf
//{
//    //首先获取第0个字母
//    NSMutableString * str1 = [NSMutableString stringWithFormat:@"%c",[idf characterAtIndex:0]];
//    // 从第一个字母往后遍历,遇到‘_’符号后,取出‘_’后的字符将小写转换为大写,让i+1;否则,直接拼接
//    for (NSInteger i = 1; i < idf.length; i++) {
//        unichar ch = [idf characterAtIndex:i];
//        if (ch == '_') {
//            ch = [idf characterAtIndex:i+1];
//            [str1 appendFormat:@"%c",ch-32];
//            i++;
//        } else {
//            [str1 appendFormat:@"%c",ch];
//        }
//    }
//    return str1;
//}
//{
//    NSMutableString * str = [[NSMutableString alloc]init];
//    for (NSInteger i = 0; i < idf.length; i++) {
//        unichar ch = [idf characterAtIndex:i];
//        if (ch == '_') {
//            unichar ch = [idf characterAtIndex:i+1];
//            [str appendFormat:@"%c",ch-32];
//            i++;
//        }
//        else
//        {
//            [str appendFormat:@"%c",ch];
//        }
//    }
//    return  str;
//}
{
    NSMutableString * str = [ NSMutableString stringWithFormat:@"%c",[idf characterAtIndex:0]];
                      for(NSInteger i = 1;i < idf.length;i++)
                      {
                          unichar ch = [idf characterAtIndex:i];
                          if(ch == '_')
                          {
                              unichar ch = [idf characterAtIndex:i+1];
                              [str appendFormat:@"%c",ch-32];
                              i++;
                          }
                          else
                          {
                              [str appendFormat:@"%c",ch];
                          }
                      }
    return str;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-06 11:57:24

将C++的标识符转成OC的标识符的相关文章

html5 请求的URL转成 OC可用属性字符串显示

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:helpUrlStr]]; NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[st

找不到标识符、未声明的标识符

1.error C3861: "_T": 找不到标识符 #include <tchar.h> 2.error C3861: "time": 找不到标识符 查看代码,发现已经包含了 time.h 头文件,不应该报这个错误啊. 找了半天,发现项目文件中有一个叫 Time.h 的头文件,可能是和vs自带的time.h冲突了. 将该 Time.h 头文件改名为 MyTime.h 之后,再把原来引用 Time.h 的地方 替换成 MyTime.h 就好了. 3.&

ARC下OC对象和CF对象之间的桥接(bridge)

在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环境下编译器不会自动管理CF对象的内存,所以当我们创建了一个CF对象以后就需要我们使用CFRelease将其手动释放,那么CF和OC相互转化的时候该如何管理内存呢?答案就是我们在需要时可以使用__bridge,__bridge_transfer,__bridge_retained,具体介绍和用法如下

iOS开发——逆向工程OC篇&amp;静态分析及使用

逆向工程-静态分析及使用 看到一篇装逼技术,有机会好好研究一下..... 最近在学习IOS逆向工程,查看网络上的资料也不是太多,边学边总结一下. 首先学习资料: 念茜(大神)的博客: http://nianxi.net <ios应用逆向工程 分析与实战> ----------------------------------------------------凌乱的分割线------------------------------------------ 其次讲讲要用到的工具(ios安装工具使用

OC语言基础

.h(头文件) .m(源文件c.oc) .mm(源文件c.oc.c++) gcc -c      -o    汇编 -framework Foundation链接  NS开头 字符串对象加@ oc中完全兼容c的函数库 NSLog可以自动换行,并且提供文件名编译时间等 需要包含头文件,每一个框架都有一个主头文件,其名字和主头文件相同,主头文件包含了这个框架的所有头文件. #import可以自动防止头文件重复包含. 链接时,需要手动连接框架. 10.多文件编译:所有对象都是以指针形式存在:跟c类似.

OC HTTPRequest GET和POST请求的代码封装

对于GET和PSOT请求我们在开发中会经常使用,所以对代码进行封装就可以做到事半功倍.下面就介绍下怎么对代码进行封装, 要求是: 1.要有网络成功和失败的blcok. 2.如果服务器传回的是 JSON 数据,自动解析;如果不是,直接返回二进制数据. 3.默认成功之后的block回调在主线程进行. 首先我们要创建一个类ZSNetworkTool,继承自NSObject,代码如下 #import <Foundation/Foundation.h> //定义别名 //成功回调类型:参数: 1. id

[OC Foundation框架 - 13] NSValue

NSNumber能够包装基本数据类型称为OC对象,是因为继承了NSValue 包装结构体成OC对象 1.自带结构体 1 void value() 2 { 3 CGPoint point = CGPointMake(10, 10); 4 NSValue *obj = [NSValue valueWithPoint:point]; 5 NSLog(@"%@", obj); 6 7 CGPoint p1 = [obj pointValue]; 8 BOOL result = CGPointE

[OC Foundation框架 - 12] NSNumber

1.概念 NSArray,NSDictionary只能放OC对象,不能放入基本数据类型 必须使用包装类NSNumber,把基本数据类型包装成OC对象 不支持自动包装解包 1 void number() 2 { 3 NSNumber *number = [NSNumber numberWithInt:10]; 4 NSMutableArray *array = [NSMutableArray array]; 5 [array addObject:number]; 6 7 NSLog(@"%@&qu

swift 与 OC中的需要注意知识点

swift oc    *swift有命名空间概念,所谓命名空间即同一个命名空间中相互可以调用不用导入.不同命名空间中可以起相同的名字 swift项目就是一个命名空间 *判断是否是某个类 .协议.方法 *运行时获取类属性列表.属性名称.将C语言字符串转成oc string *基本数据类型,在OC中没有可选,swift中如果定义成可选,运行时同样获取不到,使用KVC会崩溃,所以基本数据类型需要赋初值 *private 的属性,使用运行时,同样获取不到属性,同样会让KVC崩溃 *运行时即运行时执行的