感想
IOS挺难学的,看了几天难的倒不是技术上,而是能查到的最新的资料太少了(可能 想入IOS的已早早入行,而没入行的 都不想入行,导致现在都不出新教程了。)。IOS 更新到了 13 版本,Xcode 也更新到了 11版本。对照网上的教程,差异实在太大,对于IOS小白来说真的有些费劲。
—基于尚学堂ios教程 学习—
C和OC的差异
-
OC *** 面向对象*** 的语言
-
C ***面向过程***的语言
-
OC 面向对象编程
- 抽象对象
- 如何设计对象
- 怎么组合
-
类和对象的概念
- 对象是类的具体, 它可以准确的描述各种特征的具体样子
- 类 是对象的抽象 它指在描述一个概念。
- 从封装角度看
- 结构体 数据的封装
- 函数 逻辑的封装
- 类 数据和逻辑的封装 是一种更高级的封装
-
类的组成
- 特有属性
- 特有行为
NS
前缀带 NS : 历史原因 : NextStep cocoa框架
OC没有命令空间
结构体
struct Student{
char* name;
int age;
}
初始化
NULL nil
指针赋值 为NULL
对象指针类型赋值为 nil
基本数据类型
int 赋值为 0 、
double 0.0 、
char ""4
懒加载 (延迟加载)
体现在 重写get方法上;
属性
int 声明 NSInteger 原因,ipone5s之前使用的是32 位, 5s之后使用的是 64位。
NSInteger 是 typedef long NSInteger;
@synthesize 修改自动生成的名字
属性类型 相关的 关键词
四种相关类型 可以随意组合。但除 (setter 、getter)不可以同时使用。
属性类型相关
- assign 默认的 一把用于非对象类型的属性
- retain 用于对象类型的属性
- copy 多用于 NSString 类型的属性
线程相关
- nonatomic 默认的 ,单线程的程序
- atomic 多线程 的程序
访问权限相关
- readonly 是生成 getter方法
- readwirte 生成 setter/getter方法
方法生成相关
setter 重命名生成的setter方法
getter 重命名getter 方法
多参数方法
// 一个冒号 : 一个参数
//声明
-(void) mySetNameAndAge: (NSString*) name : (NSInteger) age;
//使用
[s1 mySetNameAndAge:@“名字”:19];
标签式定义方法的 方式
标签
mySetName:(NSString*) name age:(NSInteger)age : girlFriend (NSString*) girlName;
这个函数的 名字:*** mySetName:name : age: grilFriend ***
类方法
// 编码规范,+ - 与类型之间有个空格(没空格 也不会报错)
实例方法(-方法)
类直接调用
类型方法(+方法)
类直接调用
类型方法的有点,调用形式简单。
类方法的调用
- 【类名 方法】
实例方法
- 声明 对象
- 【对象 方法】
字符串简介 NSString
NSString 类
C的字符串 字符序列 char str[10] char*
类的特性
属性
方法
NSString的方法:
//不可变字符串
NSString str1= @“ddd”;
NSString* str2= [NSString stringWithString:str1];
// 可变字符串
NSMutableString* mStri1=[[NSMutableString alloc] init]
//拼接字符串
[mStrr1 appendString:@“fdfd”];
showString(mStr1);
[mStr1 appendString:@“fadfa”];
str1.length;
mStr1.length;
@”dacer“ /当作对象来处理,但并不是真正的对象。