1.我们都知道c# java 都有个入口main函数而swift却代码中却没有;不过有main.swift就把这个文件当中程序的入口吧!而且文件不能删除,如果删除程序直接不能编译通过
2 基本语法:用let来声明常量,用var来声明变量;一般定义的变量的类型跟值对应
let a=10; 常量只要赋值了不能二次赋值也就是说常量的值不允许改变
var b=10; 也可以定义多个值(元组) var c=(10,20,30)也可以给名称var c = (money: 100, name:"ysq")。 访问c.money
var c=[1,3,4,45] 定义数轴 ,访问下标
备注: 编程的时候分号可以写可以不写,注意空格
OC(仅仅是做一些笔记)
好吧!第一次自学oc那语法真的好操蛋,我发现原来那些本质的东西没理清:Oc和c完全兼容,所有的关键词都是@开头,他虽有的函数都是虚函数,nil相当于null;
还有一个其他语言没有的类型id就理解他泛型的对象吧。oc里面的类一般有二个文件.h(函数的申明)和.m(具体的实现),好吧还有一种类型是指针(这个东西会让人头晕我也不是很懂只是理解一些,哈哈听说oc里面很少用到指针复杂的功能,指针是一个包含了另一个变量的地址。申明是指向任意类型变量,指针操作符是个*取地址&。在oc中对象就是指针,你可以吧他看作对象)
类申明的关键词@interface @end结束
例子: @interface a:NsObject{
int age;//必须写字段还可以叫访问级别(作用域)
}
//申明函数相当于接口
-(id)init //函数为init 返回类型id
-(id) abc:(int) newabc; ////函数为abc 返回类型id 带个参数newabc类型为int
--(id) abc:(int) newabc bcd:(int)newbcd; ////函数为abc:bcd 返回类型id 带2个参数newabc和newbcd类型为int
@end
引用头文件 #import "a.h"
@implementation a
-(id)init
{
self=[super init]
//super表示父类 self表示对象自己
if(self){
id=1;
}
return self;
}
@end
调用方法在主函数里面
a *dog=[a alloc];[dog init]
int g=[dog init]
还一种给id(字段)赋值也用上面的类
//这是主函数入楼什么的签名不写啦{
a *xiaoming=[[Person alloc] init]; //person alloc这是相当于在内存中开闭一个空间(堆) init初始化一下 *xingming4个字节相当于一个指针 就理解指向堆里面的地址
开闭了堆得空间在oc里面要手动释放它;堆就是个内存池
xiaoming->age=20;注意age一开始是有值得为0如果是字符串为null;
a *xiaojian=xiaoming; 记住这这里是在蘸开闭一个xiaojian的空间二指针指向的地址和第小明的一样,等于就是一个对象而已
a *xiaoli=[[Person alloc] init]; //一定要注意这里是另外开闭一个空间这是小李的对象
xiaoming->age=20;
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
面向对象 1.继承,继承就是子类可以得到父类的非私有的字段和方法 ;作用就是创建大量的相似类的时候可以节省工作量
2.重写:父类的方法有时候不适合子类,那么子类可以写一个跟父类一样的方法名覆盖掉叫重写也属于多态
3.多态:同一个接口不同的实现就像object-c里面方法的申明就是接口
4.虚方法:在oc里面所有的函数都是虚方法,父类的指针可以只想子类的对象,但是调用方法的时候是不看指针看指向那个对象,好住就不同的事物被相同的事件触发产生不同的效果;
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
oc里面的变量修饰符:默认就是auto这个等程序运行到这个语段的结束他就释放掉,比例函数里面的变量函数外不能访问,staic就理解为全局变量,const修饰符这种变量是只读的
这理解常量
结构体
typedef struct
{
int g;
int e;
}point;
赋值 int main(::::)
{
//申明点变量
point g:
//赋值
g.g=10;
}
枚举
------------------------------------------------------好吧记一些常用的方法-----------------------------------------------------------
Nsstring:Compare 字符串比较大小后面可以跟这个options
如果直接用==直接比较是比较内存地址的,如果需要比较内容相等的话isEqualTostring
hasSuddix 以什么什么结尾
componentaeparatedbustring 吧数组转换成Nsstring
componenstparasraBytring 按指定的分割成Nssarray