1. Objective C

    介绍

    Objective-C 作为 C 程序设计语言的超集,支持与 C 相同的基本语法。您会看到所有熟悉的元素,例如基本类型(intfloat 等)、结构、函数、指针,以及流程控制结构,如 if...else 语句和 for 语句。还可以直接使用 C 标准库 …


  2. Objective C 中的nil,Nil,NULL和NSNull理解

    ObjC 里面的几个空值符号经常会差点把我搞死,这些基础的东西一点要弄清楚才行,以提高码农的基本素质。

    nil

    • nil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interface 声明的 ObjC 对象。

    • 例如:

      NSString *someString = nil;
      NSURL *someURL = nil;
      id someObject = nil;
      
      if (anotherObject == nil) // do something
      
    • 定义:

      // objc.h
      #ifndef nil
      # if __has_feature(cxx_nullptr)
      #   define nil nullptr
      # else
      #   define nil __DARWIN_NULL
      # endif
      #endif
      
      // __DARWIN_NULL …

  3. KVC 与 KVO 理解

    KVC 与 KVO 是 Objective C 的关键概念,个人认为必须理解的东西,下面是实例讲解。

    Key-Value Coding (KVC)

    KVC,即是指 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性。KVO 就是基于 KVC 实现的关键技术之一。

    一个对象拥有某些属性。比如说,一个 Person 对象有一个 name 和一个 address 属性。以 KVC 说法,Person 对象分别有一个 value 对应他的 name 和 address 的 key。 key 只是一个字符串,它对应的值可以是任意类型的对象。从最基础的层次上看,KVC 有两个方法:一个是设置 …



  4. iOS 开发教程,HelloWorld

    为了方便大家入门iOS开发,写个简单的iOS项目让大家了解一下 iPhone, iPad 等应用程序是如何开发出来的。本文只是快速入门,不涉及 Objective C 语法讲解,Xcode 与 User Interface 使用等。

    开发环境

    1. Mac OS X 10.7.3
    2. Xcode Version 4.3.2 (4E2002)

    开发流程

    1. 选择项目模板,Choose 'Empty Application' for your new project. 下一步。
    2. 填写模板选项,项目名称 'HelloWorld',下一步。
    3. 选择项目工作空间,创建项目完成。

    编写Hello, world

    由于新建的项目类型是 'Empty Application',所以是相当纯的 …


  5. ObjectiveC 深浅拷贝学习

    在ObjC中,什么是深浅拷贝? 深浅拷贝分别指深拷贝和浅拷贝,即mutableCopy和copy方法。 copy复制一个不可变对象,而mutableCopy复制一个mutable可变对象。 什么时候用到深浅拷贝?下面举几个例子说明。

    非容器类对象

    如NSString,NSNumber等一类对象

    示例1:

    // 非容器类对象
    NSString *str = @"origin string";
    NSString *strCopy = [str copy];
    NSMutableString *mstrCopy = [str mutableCopy];
    [mstrCopy appendString:@"??"];
    

    查看内存可以发现,str和strCopy指向的是同一块内存区域,我们称之为弱引用(weak reference)。而mstrCopy是真正的复制,系统为其分配了新内存空间,保存从str复制过来的字符串值。从最后一行代码中修改这些值而不影响str和strCopy中可证明。

    示例2:

    NSMutableString *mstr = [NSMutableString stringWithString:@"origin"];
    NSString *strCopy = [mstr copy];
    NSMutableString *mstrCopy = [mstr copy …

Page 1 / 1