zoukankan      html  css  js  c++  java
  • objectc笔记

    BOOL使用8位存储,YES定义为1NO定义为0,大于1不为YES,跟标准C不同。

    id是一种泛型,用于表示任何类的对象,id实际上是一个指针,指向其中的某个结构

    @implementation是一个编译器指令,表明你将为某个类提供代码

    继承(X是一个Yisa)

    Objective-C不支持多继承,我们可以通过Objective-C的其他特性获取多继承的优点,例如分类和协议

     

    方法调度

    当代码发送消息时,Objective-C的方法调度将在当前分类中搜索相应的方法,如果找不到,则在该对象的超类中进行查找

     

    复合(X有一个Yhas)

    if (self = [super init]) { //[super init]得结果赋给selfObjective-C的标准惯例,为了防止超类的初始化过程中返回的对象不同于原先创建的对象

     

    setter方法根据他所要更改的属性的名称来命名,并加上set

    getter方法根据其返回的属性的名称来命名,不要加get

     

    3种方式可以创建新的NSRange

    第一种:直接给字段赋值

    NSRange range;
    range.location = 17;
    range.length = 4;

    第二种:应用C语言的聚合结构赋值机制

    NSRange range = { 17, 4 };

    第三种:使用Cocoa提供的快捷函数NSMakeRange():

    NSRange range = NSMakeRange(17,4);

     

    - (NSComparisonResult) compare: (NSString *) string;

    - (NSRange) rangeOfString: (NSString *) aString; //看字符串中是否包含其他字符串

    - componentsSeparatedByString//切分NSArray

    - componentsJoinedByString//合并NSString

     

    保证内存占用比较小的一种方法,分段处理

    int i;
    for (i = 0; i < 1000000; i++) {
      id object = [someArray objectAtIndex: i];
      NSString *desc = [object description];
      // and do something with the description
    }

     

    节省内存的方法:

    NSAutoreleasePool *pool;
    pool = [[NSAutoreleasePool alloc] init];
    int i;
    for (i = 0; i < 1000000; i++) {
      id object = [someArray objectAtIndex: i];
      NSString *desc = [object descrption];
      // and do something with the description
      if (i % 1000 == 0) {
        [pool release];
        pool = [[NSAutoreleasePool alloc] init];
      }
    }
    [pool release]//自动释放池以栈的形式存在

     

    创建类别
    //如果你希望想一个array或者dictionary里面添加一个个数字,你需要一个个的封装,如果多,你会疯掉,可以为string类添加一个类别来完成这项工作

    1)声明对象 //与类的声明格式类似
    @interface NSString (NumberConvenience)
    - (NSNumber *) lengthAsNumber;
    @end // NumberConvenience

    实现部分
    @implementation NSString (NumberConvenience)
    - (NSNumber *) lengthAsNumber
    {
      unsigned int length = [self length];  //获得字符串的长度
      return ([NSNumber numberWithUnsignedInt: length]);
    } // lengthAsNumber

    @end

    1:无法向类别里面添加新的实例变量,类别里面没有位置容纳实例变量

    2:若名称冲突,类别的优先级更高

     

    run循环

     [[NSRunLoop currentRunLoop] run];

     是一种cocoa构造,它一直处于阻塞状态(即不执行任何处理),知道某些有趣的事情发生为止
    //这个run方法将一直运行而不会返回,后面的代码将一直不执行

    NSObject提供了一个名为respondsToSelector:的方法,该方法访问对象以确定其是否能够响应某个特定的消息

     

    NSData  char*的转化:
     const char *string = "Hi there, this is a C string!";

     NSData *data = [NSData dataWithBytes: string length: strlen(string) + 1];

     NSLog (@"data is %@", data);  //输出为ascll

     NSLog (@"%d byte string is '%s'", [data length], [data bytes]);  //格式化输出要的内容

     

    [phrase writeToFile: @"/tmp/verbiage.txt"  atomically: YES];atomically 是用于通知cocoa是否应该首先将文件内容保存在临时文件中,当文件保存成功后,再将该临时文件和原始文件交换


    Cocoa
    中提供NSPredicate的类,它用于指定过滤的条件

  • 相关阅读:
    Selenium简单测试页面加载速度的性能(Page loading performance)
    Selenium Page object Pattern usage
    Selenium如何支持测试Windows application
    UI Automation的两个成熟的框架(QTP 和Selenium)
    分享自己针对Automation做的两个成熟的框架(QTP 和Selenium)
    敏捷开发中的测试金字塔(转)
    Selenium 的基础框架类
    selenium2 run in Jenkins GUI testing not visible or browser not open but run in background浏览器后台运行不可见
    eclipse与SVN 结合(删除SVN中已经上传的问题)
    配置Jenkins的slave节点的详细步骤适合windows等其他平台
  • 原文地址:https://www.cnblogs.com/mumue/p/2957459.html
Copyright © 2011-2022 走看看