ios中的知识总结1

来源:互联网 发布:mac口红是什么牌子 编辑:程序博客网 时间:2024/06/05 03:43
http:是短连接.
服务器如何判断客户端保持长连接状态。
心跳包用来检测用户是否在线,用来做长连接。
http:短连接,使用token机制来判断当前用户的登录状态
 token 值特点: 是一个字符串/大整数,只需要保证唯一性.是服务器根据用户的信息(账号/密码/身份认证机制(电话号/身份证号/支付宝账号/银行卡信息)...)来生成的用于标识用户身份的值!

 token 值获取:

// 当用户首次登录成功之后, 服务器端就会生成一个 token 值.

1.会在服务器保存token值(保存在数据库中)

2.将这个token值返回给客户端.

// 客户端拿到 token 值之后,一般保存在两个位置 :

  1. 将 token 保存在 cookie 中;

2.将 token 保存在沙盒中,作为一个公共参数传递.

 BarrageRenderer 是开源弹幕库https://github.com/w1531724247/OCBarrage
当retaincount==0时,引用计数器被销毁。
为了丰富照片的图像效果,摄影师们在照相机的镜头前加上各种特殊影片,这样拍摄得到的照片就包含了所加镜片的特殊效果,即
即称为“滤色镜“。
特殊镜片的思想延伸到计算机的图像处理技术中,便在ps中产生了“滤镜(Filer)”,也称为“滤波器”,是一种特殊的图像效果处理技术。一般地,滤镜都是遵循一定的程序算法,对图像中像素的颜色、亮度、饱和度、对比度、色调、分布、排列等属性进行计算和变换处理,其结果便是使图像产生特殊效果。
滤镜
 滤镜就是经过分析图像中各个像素的值,根据滤镜中各种不同功能的要求,调节器用各自不同的运算模块,以生成丰富多采的图像效果。 

1.先定义结构体类型,再定义变量

四. 直接定义结构体类型变量,省略类型名
/** *  直接声明两个结构体变量student1和student2 */struct{    char name[100]; //姓名    unsigned int age; //年龄    char sex; //性别    double height; //身高} student1, student2;

五.结构体的嵌套

1结构体中可以包含,但是不允许对结构体本身递归使用。

/** *  定义日期结构体 */struct date{    unsigned int year;    unsigned int month;    unsigned int day;};

/** *  定义学生结构体 */struct student{    char name[100]; //姓名    unsigned int age; //年龄    char sex; //性别    double height; //身高    struct date birthday; //出生日期 (date结构体)};

<一> 结构体变量可以在声明的时候一次性给多个成员初始化,但是需要注意的是初始化的顺序必须和定义结构体成员的顺序一样,初始化成员的个数是可以少于总成员个数。

<二> 声明结构变量后,可以采用结构变量名.成员名来为其赋值或取值。

<三> 声明结构变量后,可以整体接收相同类型的其他结构变量的值。

2指向结构体的指针

要想使用指针来间接改变数据,必须用相同类型的指针去指向对象。结构体类型的变量或者数组在使用的时候就需要使用结构体类型的指针。
/** *  定义结构体 */struct student{    char *name; //姓名    unsigned int age; //年龄} ;
int main(int argc, const char * argv[]) {        //声明结构变量    struct student student1 = {"jredu", 21};        //定义一个结构指针    struct student *ptr = &student1;        //访问结构成员,比如得到学生信息    //方式1:直接使用结构变量    printf("name = %s,age = %u\n",student1.name, student1.age);    //方式2:通过指针得到结构变量    printf("name = %s,age = %u\n", (*ptr).name, (*ptr).age);    //方式3:直接用指针    printf("name = %s,age = %u\n",ptr->name, ptr->age);        return 0;}
原创粉丝点击