文档章节

c和oc的一些基础总结

丶过客匆匆
 丶过客匆匆
发布于 2015/12/27 22:14
字数 906
阅读 11
收藏 0

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);

 

 

 

 

 

 

© 著作权归作者所有

丶过客匆匆
粉丝 0
博文 13
码字总数 5873
作品 0
程序员
私信 提问
iOS狂暴之路(开始篇)---学习路线总结

一、学习路线规划 现如今移动端的两大平台Android和iOS是风光无限,但是又有谁能够保证这两个平台能够昌盛一辈子呢?谁也不敢保证其中一个在未来几年之后就会成为第二个诺基亚,所以我们现在...

jiangwei0910410003
2016/09/06
0
0
iOS引用转换:Foundation与Core Foundation对象互相转换(__CFNSString转NSString,void *转id等等)

1. 两个框架的基本知识 1.1 Foundation 框架名是,在Xcode新建工程时可以选择导入(其实会默认自动依赖好)。Foundation框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组,...

陈满iOS
2018/05/10
0
0
Objective-C学习总结——函数与变量的语法特性

Objective-C学习总结——函数与变量的语法特性 Objective-C是一种以C为基础,并集合Smalltalk特征扩展出来的面向对象的语言。在本章节中主要记录总结OC中函数与变量的C语言特性。 全局变量和...

C语言开发
2017/12/13
0
0
Object-C基础-01-概述

回到顶部 前言 目前来说,Objective-C(简称OC)是iOS开发的核心语言,在开发过程中也会配合着使用C语言、C++,OC主要负责UI界面,C语言、C++可用于图形处理。近来,流传Ruby、C#也可以开发iOS...

Corwien
2016/03/16
33
0
【iOS开发干货】Objective-C基础知识点总结(一)

长文,建议跳跃选择性阅读,大约10min可以读完全文。 iOS开发 1.目录 1.个人学习建议 2.知识点整理 3.下集预告 iOS这一行,都过了这么多年,还是水分很足,没有几个愿意安安心心查资料写东西...

曹真
2017/06/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库

数据库架构 数据库架构可以分为存储文件系统和程序实例两大块,而程序实例根据不同的功能又可以分为如下小模块。 1550644570798 索引模块 常见的问题有: 为什么要使用索引 什么样的信息能成...

一只小青蛙
今天
5
0
PHP常用经典算法实现

<? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k){ if ( $low <= $high){ $mid = int......

半缘修道半缘君丶
昨天
5
0
GIL 已经被杀死了么?

本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:https://mp.weixin.qq.com/s/8KvQemz0SWq2hw-2aBPv2Q 花下猫语: Python 中最广为人诟病的一点,大概就是它的 GIL 了。...

豌豆花下猫
昨天
5
0
git commit message form

commit message一般包括3部分:Header、Body、Footer。 <type>(<scope>):<subject>blank line<body>blank line<footer> header是必需的,body、footer可以省略。 header中type、subject......

ninjaFrog
昨天
5
0
聊聊Elasticsearch的CircuitBreakerService

序 本文主要研究一下Elasticsearch的CircuitBreakerService CircuitBreakerService elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/indices/breaker/CircuitBreakerService.ja......

go4it
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部