Objective-C 笔记片段 -- 基础语法

Objective-C 笔记片段 – 基础(1)

import & include

import可以保证类只被引用一次。

框架

序号 层次 备注
1 Cocoa Touch 触控UI层
2 Media 媒体层
3 Core Services 核心服务层
4 Core OS 核心OS层
  • Cocoa Touch包含:Game kit、Event Kit UI、Message UI、UIKit、
    iAd、Map Kit、Address Book UI
  • Media包含:Media Player、Media Accessibility、GLKit、Sprite Kit、Assets Library、Game Controller、
    Core Image、AV Foundation、Image I/O、OPenAL、Core Gragphic、Quartz Core、
    Core Audio、Core Text、Core Video、Open GL ES
  • Core Services包含:Newsstand Kit、Address Book、Ad Support、Social、Foundation、Core Data、
    Pass Kit、Store Kit、Safari Service、Quick Look、CFNetwork、Accounts、Event Kit、
    Core Location、Mobile Core Service、Core Telephony、Core Motion、
    Multipeer Connectivity、Javascript Core、Core Foundation、System Configuration、Core Media
  • Core OS包含:Core Bluetooth、External Accessory、Security、Accelerate、Generic Security Services、System
    More On iOS框架和服务

NSLog

NSLog() 能够打印NSString类型的数据,EG:
NSLog(@"Print Log"); NSLog(@"Print with parameter: Name : %@, Age : %d", @"name", 20)
NSLog可接受的参数有:

格式 类型
%@ 对象
%d,%i 整数
%u 无符号整数
%f 浮点/双数
%x,%X 二进制数
%o 八进制数
%zu size_t
%p 指针
%e 浮点/双数(科学计数)
%g 浮点/双数
%s C字符串
%.*s Pascal字符串
%c 字符
%C unicode
%lld 64位长整数(long long)
%llu 64位无符号长整数
%Lf 64位双字

Boolean

objective-c的boolean具有两个值:YES & NO,
objective-c中的BOOL是由一对带符号的字符类型(signed char)的类型定义(typedof),使用8位的存储空间。
通过#define指令把YES定义成为1,NO定义成为0
_ boolean in c & oc
BOOL b1 = 8960; //objective-c NO bool b2 = 8960; //c true
_ YES / NO并不能简单的对应成true / false

类class

  1. 创建对象、初始化

    • alloc 分配内存
    • init 初始化对象
    • EG:

MyObject *object = [[MyObject alloc] init]

  1. 基础概念
    > objective-c的每个类都有一个单独的文件。当然,也可以将头文件.h与.m分开书写,这样就会有两个文件。
    .h和.m一一对应。一般情况下,我们在.h中声明,然后在.m中实现。
  2. 类方法
    在objective-c类的方法有+ - 两种。具体区别如下:
    +实例方法instance method:只有定义了类的实例,才可以被调用; -类方法class method:用类名直接调用

ClassName.h
@interface ClassName:NSObject { // } -(void) classMethod; -(void) classMethodWithParameter:(NSString) name; +(void) instanceMethod; +(void) instanceMethodWithParameter:(NSString) name; @end

ClassName.m
`

import “ClassName.h”

@implement ClassName:NSObject {
//
}
-(void) classMethod{
//
}
-(void) classMethodWithParameter:(NSString) name{
//
}
-(void) instanceMethod{
//
}
-(void) instanceMethodWithParameter:(NSString) name{
//
}
`