From: http://xiaoqi85.blog.sohu.com/120557470.html
NSObject:
NSObject是所有Objective-C类的根类.
1. -(id)init
例 TheClass *newObject = [[TheClass alloc] init];
2. -(NSString *)description
例 [newObject description]返回newObject的类名。
3. -(BOOL)isEqual:(id)anObject
例 if ([myObject isEqual:anotherObject]) { NSLog(@"They are equal."); }
这个方法定义只在receiver和anObject为同一个对象时相等.也就是它俩指向同一个内存地址.但很多 的类会重载这个方法来实现自己的相等策略。所以,对于两个NSString对象 x 和 y.下面两个表达式是有不同意义的 x == y 和 [x isEqual:y] 第一个表达式是比较两个指针是否相等.而第二个是比较两个指针所指向的NSString对象是否相等. 如果x和y都是没有重载NSObject isEqual:方法类的实例,这两个表达式的结果是一样的.
NSArray:(immutable)
在创建的时候,就包含了所有对象.你不能增加或是删除其中任何一个对象.这种特定称为: immutable.
1. - (unsigned)count 得到array中的对象个数.
2. -(id)objectAtIndex:(unsigned)i 得到索引为i的对象.如果i值超过了array对象数量,在程序运行到这里会产生错误.
3. -(id)lastObject 得到最后一个对象.如果NSArray中没有任何对象存在,返回nil.
4. -(BOOL)containsObject:(id)anObject 当anObject出现在NSArray中,则返回YES.
5. -(unsigned)indexOfObject:(id)anObject查找NSArray中是否存在anObject, 并返回最小的索引值.
NSMutableArray:
NSMutableArray继承NSArray,扩展了增加,删除对象的功能. 可以使用NSArray的mutableCopy方法来复制得到一个可修改的NSMutableArray对象.
1. - (void)addObject:(id)anObject 在reciever最后添加anObject. 添加nil是非法的.
2. - (void)addObjectsFromArray:(NSArray *)otherArray 在reciever最后,把otherArray中的对象都依次添加进去.
3. - (void)insertObject:(id)anObject atIndex:(unsigned)index 在索引index处插入对象anObject. 如果index被占用,会把之后的object向后移动. index不能大于所包含对象个数,并且anObject不能为空.
4. - (void)removeAllObjects 清空array.
5. - (void)removeObject:(id)anObject 删除所有和anObject相等的对象.
6. - (void)removeObjectAtIndex:(unsigned)index 删除索引为index的对象.后面的对象依次往前移.如果index越界,将会产生错误.
NSString:(immutable)
1. -(id)initWithFormat:(NSString *)format, ...
就像sprintf. format由很多记号组成.比如%d.
例: NSString *aString = [[NSString alloc] initWithFormat: @"The int %d, the C String %s, and the NSString %@", x, y, z];
2. - (unsigned int)length 返回字符个数.
3. - (NSString *)stringByAppendingString:(NSString *)aString 给一个字符串附加一个字符串aString.
1.我们通常使用的是ArrayList,但是为什么我们要申明为接口呢?
List<Person> listOfPerson = new ArrayList<Person>();//方法一 而不是直接申明成一个具体的实现类: ArrayList<Person> listOfPerson = new ArrayList<Person>();//方法二
这是因为List接口的实现类很多,ArrayList是其中的一个。如果代码中需要使用List的其它实现类,比如:LinkedList或者Vector。那么程序就很容易改写了。
尽管方法二的效率要比方法一高些,但是通常我们不这样做。而是申明为接口。
2.通常我们会用到的是将一个List赋给另外一个List,我们要注意下这两种做法的区别:
List<Person> myList1 = new ArrayList<Person>(); for(int i = 0; i < 100; i++) { //do somthing... myList1.add(i); } Lsit<Person> myList2; 如果我这样写: myList2 = new ArrayList<Person>();//没有必要了 myList2 = myList1; 表示: 让myList2指向myList1所指向的同一个对象。 所以myList2没有必要new一份出来,可以减少一个对象 如果要让myList2从myList1中拷贝一份过来,而不是简单的指向的话,那么 我们需要new一份myList2。并且调用addAll().将对象添加 myList2 = new ArrayList<Person>();//一定要 myList2.addAll(myList1);
在Resources下创建一个文件:InfoPlist.strings,注意文件名一定要写对。
在该文件中写入以下内容:
CFBundleDisplayName = "China";