c和oc基础

C   指针:

1.1复习了c的指针。
当多个指针变量存在的时候,需要给指针变量赋初始值,否则会造成野指针的存在;
1.2.用c指针实现三个数的大小比较。

面向对象OO和面向过程:

1.面向过程和面向对象编程的区别:
面向过程,着重于解决问题的步骤;
面向对象,着重于解决问题的对象。
2.oc和c的一些区别:
oc中引入头文件用#import<Foundstion/Foundation.h>
c中引入头文件用#include<stdio.h>
oc中打印输出用NSLog();函数,
c中打印输出使用plintf();
3.类和对象
4.实例化对象

面向对象:

1、面向对象的三大特性:封装,多态,继承
1)封装
1.1 封装的思想是让类属性、方法更安全
1.2在oc中封装类属性有四个修饰符 ,分别是:public(公开的) @protected(受保护的) @private(私有的) @package
1.3 一般系统默认的是@protected
1.4如果父类有@private 那么子类不能重写父类的set/get方法
1.5当属性的修饰符是@public时,可以通过下面方式修改属性的值
father -> _name = "父亲";
1.6 package用于框架,出了框架就失效
2)继承
继承是指: 子类继承父类的所有功能
3)多态
多态的思想是父类的指针指向子类
2、复合
复合是指: 多个对象间的组合,即类属性的数据类型是对象类型

OC中基本数据类型:

字符串:
不可变:NSString *string = @"1",@"2";
可变:NSMutableString *string = [NSMutableString StringWithCapaty:10];
常用的函数有:
- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
- (void)deleteCharactersInRange:(NSRange)range;
- (void)appendString:(NSString *)aString;
- (void)appendFormat:(NSString *)format;
- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;  //  NSMakeRange(loc, length);
数组:
不可变:NSArray *array = @[@1,@2,@3,@4];
可变:NSMutableArray *array = [NSMutableArray ArrayWithCapaty:10];
增加: addObject : 
删除: removeObject:
插入: insertObject :  atIndex:
替换: replaceObjectAtIndex :    withObject :
遍历数组:
for循环
for(int i=0;i<array.count;i++){
  NSLog( @"%@",array[i] );
}
//或者是
for(id obj in array){
  NSLog(@"%@",obj);
}
枚举:
NSEnumerator *en = [array objectEnumerator];
NSString *str =nil;//如果不是字符串的话,也可以用万能   id obj;
while(str=[en nextObject]){
  NSLog(@"%@",str);
}
字典:
不可变:NSDictionary *dictionary = @{@"key1": @"value1", @"key2": @"value2"};
可变:NSMutableDictionary *mutableDictionary2 = [NSMutableDictionary dictionaryWithCapacity:0];1:增加
1:在字典末尾增加一个键值对
- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
2:在字典末尾增加一个字典
- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary; 
2:删除
1:根据键key删除键值对
- (void)removeObjectForKey:(id)aKey;
2:根据数组中的内容删除相应的键值对
- (void)removeObjectsForKeys:(NSArray*)keyArray;
3:删除所有键值对
- (void)removeAllObjects;
4:修改整个字典
//修改整个字典
- (void)setDictionary:(NSDictionary*)otherDictionary;
//修改键值对
//key不存在表示增加 key存在表示修改key对应的值
- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
5:根据键key获取相应值value
- (id)objectForKey:(id)aKey;
//字典的遍历key1相当于a[i]中的i,dic4就自己定义的字典
   for (id key1 in dic4) {       
    id vaule=[dic4 objectForKey:key1];
        NSLog(@"qqqqqq%@%@",key,vaule);
        }
结构体:
1:NSPoint\CGPoint
NSPoint p1 = NSMakePoint(10, 10); 
CGPoint p2 = CGPointMake(10, 20);
CGPointZero == CGPointMake(0, 0); 
2:NSSize\CGSize
NSSize s1 = NSMakeSize(50, 50);
CGSize s2 = CGSizeMake(50, 100); 
3:NSRect\CGRect
CGRect r1 = CGRectMake(10, 10, 50, 50);
CGRect r2 = {{0, 0}, {100, 100}};
4:NSRange
时间:
NSDate:
//获取系统时间  
        NSDate *date = [NSDate date];  
        NSLog(@"%@",date);  
        //将时间转换为字符串  
        //设置时间格式  
        NSDateFormatter *dateformatter =[NSDateFormatter new];  
        [dateformatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];  
        NSString *nowtime = [dateformatter stringFromDate:date];  
        NSLog(@"nowtime=%@",nowtime);  
        //将字符串时间转换为时间  
        NSString *timeString = @"2015-07-01 10:20:00";  
        //设置时间格式  
//        NSDateFormatter *dateformatter =[NSDateFormatter new];  
//        [dateformatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];  
        //转换  
        NSDate *date2 = [dateformatter dateFromString:timeString];  
        NSLog(@"date2 = %@",date2);







你可能感兴趣的:(字符串,数组,oc,结构体,字典)