文章列表
5 5.Foundation4-NSString的导出
例一:
main.m
//
// main.m
// Foundation1 - 指向指针的指针
//
// Created by qwz on 13-12-9.
// Copyright (c) 2013年 renhe. All rights reserved.
//
#import <Foundation/Foundation.h>
#pragma mark 字符串的导出
void stringExport(){
NSString *str = @&qu ...
5 4.Foundation3-指向指针的指针
- 博客分类:
- IOS
5 4.Foundation3-指向指针的指针
例一:
main.m
//
// main.m
// Foundation1 - 指向指针的指针
//
// Created by qwz on 13-12-9.
// Copyright (c) 2013年 renhe. All rights reserved.
//
#import <Foundation/Foundation.h>
void changeC(char *d){
*d = 9;
}
int main(int a
5 3.Foundation2-NSString的创建
NSSTring的创建
1)、创建常量字符串
NSString *string = @”This is a String!”;
2)、创建空字符串,给予赋值
NSString *string = [ [NSString alloc] init];
String = @”This is a String! ”;
3)、通过字符串创建字符串
[[NSString alloc] initWithString : ...
5 2.Foundation1-常用结构体
- 博客分类:
- IOS
5 2.Foundation1-常用结构体
NSRange
1)、在Foundation/NSRange.h中对NSRanger的定义
Typedef struct _NSRange{
NSUInteger location;
NSUInteger length;
} NSRange;
//typedef unsigned long NSUInteger
2)、这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围。
3)、loca ...
5 0.OC16-Block
- 博客分类:
- IOS
5 0.OC16-Block
Block
1)、Blocks封装了一段代码,可以在任何时候执行
2)、Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:blocks是inline(内联函数的),并且默认情况下它对局部是只读的
3)、苹果官方建议尽量多用blocks。在多线程、异步任务、集合遍历、集合排序、动画转场用的很多
Blocks的定义
例一
Main.m
4 9.OC15-Protocol
- 博客分类:
- IOS
4 9.OC15-Protocol
Protocol
1)、简单来说就是一系列方法的列表,其中声明的方法可以被任何类实现。这种模式一般称为代理(delegation)模式。
2)、在IOS和OS X开发中,Apple采用了大量的代理模式来实现MVC中view(UI控件)和Controller(控制器)的解耦。
Main.m
//
// main.m
// OC10-
4 7.OC13-内存管理4-autorelease
自动释放池(autorelease pool)
1)、自动释放池是OC里面的一种内存自动回收机制,一般可以将一些临时变量添加到自动释放池中,统一回收释放。
2)、当自动释放池销毁时,池里面的所有对象都会调用一次release方法。
autorelease
1)、OC对象只需要发送一条autorelease消息,就会把这个对象添加到最近的自动释放池中(栈顶的释放池)
2)、autorelease实际上只是把对rel
4 6.OC12-内存管理3-@property参数详解
4 5.OC11-@class关键字
- 博客分类:
- IOS
4 5.OC11-@class关键字
@class
通常引用一个类有两种方法:(1)一种是通过#import方式引入; (2)另一个是通过@class引入
两种方式的区别:
1、#import方式会包含被引用类的所有信息,包括被引用类的变量和方法:@class方式只是告诉编译器在A.h文件中B * b类的声明,具体这个类里有什么信息,这里不需要知道,等实现文件中真正要用到时,才会真正查看B类信息。
4.4OC10-内存管理2-set方法的内存管理
- 博客分类:
- IOS
4.4OC10-内存管理2-set方法的内存管理
例一:
main.m
//
// main.m
// OC10-内存管理2-set方法的内存管理
//
// Created by qwz on 13-12-9.
// Copyright (c) 2013年 renhe. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Student.h"
#import "Book.h"
int main(int ...
4 3.OC9-内存管理1-retain和release
内存管理
范围:
任何继承了NSObject的对象,对基本数据类型无效。
原理:
1)、每个对象内部保存了一个与之相关联的整数,称为引用计数器
2)、当使用alloc、new或者copy创建一个对象时,对象的引用计数器设置为1
3)、给对象发送一条
4.2OC8-@property和synthesize
例一:
-------------main.m-----------------
//
// main.m
// 构造方法
//
// Created by liuyes on 13-12-8.
// Copyright (c) 2013年 renhe. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const ...
4.0OC6-self、自动释放、变量作用域
- 博客分类:
- IOS
4.0OC6-self、自动释放、变量作用域
类
方法的声明和实现,都可以以 + 或者 - 开头
+ 表示类的方法(静态方法)
- 表示对象方法(动态方法)
在.h中声明的所有方法都是public类型(通过Category可以实现private)
变量的作用域
@public全局都可以访问
@protected只能在类内部和子类中访问
@private只能在类内部访问
变量必须定义在类的{ } 中
-----------main.m-------------
//
// main.m
// 构造方法
//
// Created by ...
--------main.m---------
//
// main.m
// 构造方法
//
// Created by liuyes on 13-12-8.
// Copyright (c) 2013年 renhe. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {