注:楼主开发多年,向来没有做笔记的习惯,遇到Bug或者遗忘的知识往往需要再查资料,非常痛苦,故*近开始写Blog,也因此有机会写出本文,权当作笔记和备忘,只为了以后复习方便,也希望对其他新人有所帮助。

本文只是在IOS开发中的一些比较好的资料的汇总,并不见得有系统,

一: Object-C

1.1

@property 和@synthesize

http://justcoding.iteye.com/blog/1444548

(也包括 strong weak unsafe copy assign retain 的属性值-关键字-所有权 关系)

@property 语法: @property(参数1, 参数2)类型 名字;

头文件 .h 中

@property int count;

等效于在头文件中声明2个方法

//创建新变量和变量初始化方法
-(int) count
-(void)setCount:(int)newCount

实现文件 .m 中
@synthesize count

等效于在实现文件 .m 中实现两个方法

-(int) count{
return count;
}

-(void)setCount:(int)newCount{
count = newCount;
}

1.1.1

@property属性对介绍。

http://blog.csdn.net/volcan1987/article/details/6721828 基本介绍

http://www.2cto.com/kf/201205/133943.html 进阶介绍
readwrite:默认,会自动为你生成存取器

assign:一般用来处理基础类型,比如int、float等等,如果你声明的属性是基础类型的话,assign是默认的,你可以不加这个属性

不更改reference count, 会引起内存管理对问题。

适用于:原生类型如 int, float等可以用assign。

copy:这个会自动生成你赋值对象的克隆,相当于在内存中新生成了该对象的副本,这样一来,改变赋值对象就不会改变你声明的这个成员变量了

相当于拷贝内容。不希望a/b用同一内存的时会用到

适用于:NSString

retain:会自动retain赋值对象

相当于拷贝一个指针,用reference count 方式解决了assign的管理问题

适用于:NSObject 和 其子类。

copy, retain拷贝之前都会释放旧对象。

atomic:默认是有该属性的,这个属性是为了保证程序在多线程情况,编译器会自动生成一些互斥加锁代码,避免该变量的读写不同步问题

readonly:只生成getter不会有setter方法

nonatomic:如果该对象无需考虑多线程的情况,请加入这个属性,这样会让编译器少生成一些互斥加锁代码,可以提高效率

二: 杂记

2.1: 在Object-C 中的 NSArray,NSString…… NS到底是什么??

NSArray, NSString 等等NS前缀类、函数归属于属于cocoa Fundation基础类库,其”NS”的由来据说是这样的:乔布斯被苹果开除后,创立了NeSt公司,而cocoa Fundation基础类库就是出自于NeST公司,NeST中的”NS”被作为Fundation中所有成员的前缀。当时的情况就是这样的,回答完毕。

不用管他多,就是他自己封装的一层架构,数据类型一般是 NS 界面相关的一般是 UI

2.2:
Java有基本类型了,为什么还有基本类型的对象封装?

注:Object C 里面一样有类似的情况,比如把基本数据类型 int, float 封装成对象

//封装
NSNumber *monthNumber = [NSNumber numberWithInt: 03];
NSLog(@”monthNumber = %@”, monthNumber);
//还原
int month = [monthNumber intValue];
NSlog(@”%d”, month);
原因总结起来主要如下:

1: 基本类型无法和 类 放在一起:比如集合类(Collection 类),ArrayList 中没办法放基本类型,

2: 封装类中提供了很多基本类型没有的方法。