摘要:遵守CBCentralManagerDelegate代理和CBPeripheralDelegate代理 在使用你的应用去扫描设备之前,先要确定你的蓝牙是否已经打开,所以我们要做一个判断: 其中f3d9是我连接到iPad mini2的LightBlue app模拟的BLE外围设备,你要换成你设备的UU
阅读全文
|
04 2016 档案
摘要:遵守CBCentralManagerDelegate代理和CBPeripheralDelegate代理 在使用你的应用去扫描设备之前,先要确定你的蓝牙是否已经打开,所以我们要做一个判断: 其中f3d9是我连接到iPad mini2的LightBlue app模拟的BLE外围设备,你要换成你设备的UU
阅读全文
摘要:core bluetooth,蓝牙4.0限制: IOS6 以上 一、外设 peripheral 二、中心 central 三、服务,一个设备有多个服务;由蓝牙硬件厂商决定。决定哪些是用来交互(读写),哪些可获取模块信息(只读); 四、特征,一个服务有多个特征,特征是与外界交互的最小单位;由蓝牙硬件厂
阅读全文
摘要:头文件:#include <string.h>bzero() 会将内存块(字符串)的前n个字节清零,其原型为: void bzero(void *s, int n);【参数】s为内存(字符串)指针,n 为需要清零的字节数。bzero()会将参数s 所指的内存区域前n 个字节,全部设为零值。实际上,b
阅读全文
摘要:Bonjour(法语中的你好)是一种能够自动查询接入网络中的设备或应用程序的协议。Bonjour 抽象掉 ip 和 port 的概念,让我们聚焦于更容易为人类思维理解的 service。通过 Bonjour,一个应用程序 publish 一个网络服务 service,然后网络中的其他程序就能自动发现
阅读全文
摘要:以下操作都是在mac命令终端执行: 显示隐藏文件: 取消显示隐藏文件
阅读全文
摘要:解决办法: 第一步:使用mac终端命令执行命令:
阅读全文
摘要:如果想深入弄懂它的原理:建议阅读《UNIX网络编程》 socket,我们一般指的是长连接,但是原来还有短连接,正确的解释是: 1. 如果是短链接,使用同步socket。例如http服务器、转接服务器等等。 2. 如果是长链接,使用异步socket。例如通讯系统(QQ / Fetion)、webgam
阅读全文
摘要:打印当前的行号:NSLog(@“%d”,_LINE_); 打印当前文件所处的文件路径:printf(@“%s\n”,_FILE_); 打印指针变量地址:NSLog(@“%p”,&p); 打印对象地址:NSLog(@“%p”,p); 输出当前函数名:NSLog(@“%s\n”,_func_);
阅读全文
摘要:网友解答:
阅读全文
摘要:类本质的东西 类的加载过程;
阅读全文
摘要:网友解答: *类别(category)和继承的区别? *类别:类别是对一个功能完备的类的一种补充,就像是一个东西的主要基本功能都完成了,可以用类别为这个类添加不同的组件,使得这个类能够适应不同情况的需求。比如animal这个类,具有eat和run等方法,想给这个类添加一个bark的方法,可以用类别。
阅读全文
摘要:使用场景; 分类:可以给某一个类扩充一些方法(不修改原来类的代码) //声明@interface 类名(分类名称) @end;一个类可以有很多个分类; //实现@implementation 类名(分类名称) @end; 分类的作用,在不改变原来类内容的基础上,可以为类增加一些方法; 使用注意: 分
阅读全文
摘要:自定义构造方法 调用: 两个定义在一起 执行点语法就是执行set或者get方法;
阅读全文
摘要:self 为什么要赋值为[super init],当程序进入到init这个方法的时候,系统已经生成了对象并分配了存储空间,在调用[super init]是为了初始化父类对象,在父类对象初始化过程序中有可能失败(如网络资源调用失败)或者返回其它对象(这个取决于你的父类了),这个时候的self其实也可以
阅读全文
摘要:为什么要重写init方法,重写有什么好处和作用:一般用来什么事情: 1.可以用来创建对象,这个是最基本的;配合alloc使用; 2.init什么时候会被执行,当对象被创建的时候; 3.好处和作用: 网友解答:可以在你实例化的时候提供更多参数以便实现对对象的快速赋值。重写init可以让你创建的对象出来
阅读全文
摘要:@property @property @synthesize 这两个的作用是代替set和get方法; @property int age;代替下面两句 - (void)setAge:(int)age; - (int)age; 作用: 自动生成某个成员变量的setter和getter声明; @pro
阅读全文
摘要:id类型 id已经是关键字,以后定义变量要注意; id是万能指针;能指向、操作任何OC对象,没有*,因为它已经包含了*; Person *p = [Person new];可以用下面的来代替,只适用于OC对象; id d = [Person new]; id 你可以认为是NSObject * 因为N
阅读全文
摘要:有四种; 公共作用域意味着在任何地方都可以访问成员变量; 私有作用域只能在当前类的对象方法中直接访问;如person.m;子类如果需要访问,需要通过set和get方法; 保护作用域能在当前类和子类的对象方法中直接访问; 父类的私有变量,在子类中不能直接访问,但是有私有变量的存在,需要通过set和ge
阅读全文
摘要:点语法与set和get方法有关; 学习一个语法替代set和get方法; Person *p = [Person new]; p.age = 10;p访问setAge方法; 如果是点语法,而且是设值,就是set方法; 点语法的本质 点语法的本质是方法的调用; JAVA中的点语法是访问成员变量; ste
阅读全文
摘要:@“456454512213545”也是一个对象; NSString是继承NSObject的;OC的字符串用%@作为占位符; NSString *str = @"itcast";NSLog(@"我在%@上课",str); NSString的类方法:NS[NSString stringWithForm
阅读全文
摘要:对象具备多种形态就是多态; 没有继承就没有多态; 父类指针指向子类对象;Animal *a = [Dog new]; [a eat]; 调用方法是会检测对象的真是形象; NSObject *n = [Dog new]; NSObject *n = [Animal new]; OC是弱语法;runti
阅读全文
摘要:继承是在类与类之间的; 做一个普遍类让别人来继承;冒号后面可以继承; 继承了别人,就相当于拥有了别人里面的所有成员变量和方法; 一个父类可以有多个子类; 继承的好处:可以抽取重复代码;建立了类之间的关系; 类方法new是在NSObject这个父类里面的; NSProxy不是继承NSObject的;
阅读全文
摘要:self是一个指针,self指向的是调用当前方法的对象; 如果不理解,可以理解为当前对象; self可以访问当前对象的成员变量; self的第二个使用情况; - (void)bark { NSLog(@"汪汪汪"); } - (void)run { [self bark]; NSLog(@"跑跑跑"
阅读全文
摘要:类方法是以+开头的 Person *p = [Person new];这个是类方法; [p test];//这个是对象方法 类方法的调用需要创建对象;类方法只能用类来调用;对象方法只能通过对象来调用; + (void) test; - (void) test; 上面两个可以同时存在,因为一个是类方法,一个是对象方法; 细节:方法只有两种:类方法;对象方法; 对象方法:减号 - 开头;只能有对象来...
阅读全文
摘要:如果调用一个对象没有声明的方法;编译可以通过;链接也可以通过;但是不能运行; 如果你声明了一个方法,没有实现,编译和链接都可以通过;但是不能运行; OC中调用方法的时候是在运行过程中才会检测对象有没有实现相应的方法; 如果你实现了一个方法,没有定义,编译和链接都可以通过,运行也可以成功; 在程序运行
阅读全文
摘要:匿名对象就是没有名字的对象; [Car new]->speed = 300; [[Car new] run]; 上面两句的结果是0,因为[Car new]每次都会重新申请内存; OC字符串也是一个对象;
阅读全文
摘要:类的声明 方法的实现 方法和函数的区别; 结构体在变量的同时才能够赋值; 练习: 学生:成员变量:性别、生日、体重、最喜欢的颜色、狗(体重、毛色、吃、跑); 方法:吃、跑、遛狗(让狗跑)、喂狗(让狗吃) 学生:成员变量:性别、生日、体重、最喜欢的颜色、狗(体重、毛色、吃、跑); 方法:吃、跑、遛狗(
阅读全文
摘要:怎么创建对象;先理解类;什么是类; 怎么设计一个类;3个步骤;类的名称;要有意义;属性;身高,年龄;行为;功能;跑
阅读全文
摘要:布尔可以当做整型来用;BOOL YES NO全部是大写,没有小写; 布尔类型的本质:typedef signed char BOOL; 输出是YES或者NO,还有1和0
阅读全文
摘要:objective-C面向对象C; 在c语言基础上增加了面向对象的语法; 简称OC;可以使用C语言代码,完全兼容; .c只能写C语言文件; .m可以写C语言代码; oc的关键字;OC里面的关键字,基本都是以@开头; 在int,,,c基础上,增加了布尔类型;要么yes要么no; 清空指针,之前c语言是
阅读全文
摘要:设计一个函数,用来计算b的n次方; 自己调用自己就是递归;必须有明确的返回值; 递归是用在函数里面的; int pow2(int b,int n){if (n<=0)return 1;return pow2(b,n-1)*b;} pow2(b,0)=1; pow2(b,1)=b=pow2(b,0)*
阅读全文
摘要:对函数的作用; 函数有分类型;外部函数:和内部函数; 外部函数:可以被本文件和其他文件访问; 内部函数:只能被本文件访问;其他文件不能访问; 默认情况下,所有函数都是外部函数; extern是外部的意思; 完整的定义外部函数需要加上extern,因为默认情况下就是外部函数,可以省略extern; 完
阅读全文
摘要:typedef 注意点:宏定义和include等预处理指令不需要分号;
阅读全文
摘要:预处理指令 翻译成0跟1之前执行的指令;有宏定义;条件编译;文件包含(就是include) 预处理指令在什么时候执行:在代码翻译成0和1之前执行; 预处理指令的位置是随便写的;但是是有作用域的;从编写指令的那一行代码开始,一直到文件结尾; 1.宏定义可以带参数也可以不带参数; 不带参数 #defin
阅读全文
摘要:枚举 枚举 如果你想固定几个取值,就用枚举; 先定义枚举类型;再定义枚举变量; enum Season{spring,summer,autumn,winter};定义枚举类型; enum Season s;定义枚举变量;enum Season s = summer; C语言是弱语法;固定取值用枚举;
阅读全文
摘要:结构体:可以由多个不同类型的数据构成 数组:只能存放一种数据类型 结构体内存分析;从上往下分配; 结构体注意点和其他用法: 结构体数组; 结构体的嵌套 多次使用同一个结构体的时候使用; struct Date{int year;int month;int day;}; struct Student{
阅读全文
摘要:变量类型 局部变量;在函数内部定义的;定义在函数(代码块)内部定义的变量;包括函数的形参; 作用域:从定义变量的那一行开始,一直到代码块结束; 生命周期:从定义变量的那一行开始分配存储空间,代码块结束后,就会被回收; 全局变量;在函数外面定义的变量; 作用域:从定义变量的那一行开始,一直到文件结尾;
阅读全文
摘要:指针的使用注意: 指向指针的指针; 指针与数组 指针与字符串 返回指针的函数: 指向函数的指针
阅读全文
摘要:strlen函数可以计算字符串长度;在计算字符串长度时,不会计算\0; 一个中文有3个字符;strlen计算的是字符数,不是字数; 图中size的字符数是8;因为name2没有\0,有两个字符,所以会一直读到name的\0,而name有6个,所有总共8个;
阅读全文
摘要:字符串数组: 字符串数组: char names [2][10]= {"jack","rose"}; char name2[2][10]={{'j','a','c','k','\0'},{'r','o','s','e','\0'}}; %s代表字符串;
阅读全文
摘要:数组和函数: 二维数组:
阅读全文
摘要:位运算: 按位与 &;9&5;任何运算符都有运算结果; 针对二进制进行计算;只有两个对应位都为1时,结果才为1;否则为0; 按位与的作用是能精确知道哪位是多少,获取某个精确的二进制位; 按位或 | 对应的两个二进位有一个为1时,就为1;9|5 按位异或 ^ 9 ^ 5;当两个二进制位不相同是为1;
阅读全文
摘要:数据类型总结 基本数据类型; int (long int,long)8个字节%ld ;short int,short2个字节;%d ,%i unsigned int,unsigned4个字节;%zd signed int ,signed,int;%d,%i . float\double float4
阅读全文
摘要:链接的时候,把项目中所有相关联的.o目标文件和C语言函数库合并在一起,生成可执行文件; 函数的定义放在.c文件,函数的声明放在.h文件; 如果要使用某个.c文件中定义的函数,只需要#inclued这个.c文件对应的.h文件; .h文件的作用:被别人拷贝,编译链接的时候不需要管.h文件 其他注意事项:
阅读全文
摘要:循环语句就是常说的循环结构 循环结构: while循环;for循环;do while循环; while(条件){};使用循环时:1、先确定重复执行的操作;2、再确定约束条件;就是循环的次数; int count = 0;while(count<50){++count;printf("做第%d次俯卧撑
阅读全文
摘要:一.条件语句就是一般说的选择结构 选择结构- if语句; switch语句; scanf函数: 1)、和printf函数相反;这个是输入的;让用户输入; 2)、使用scanf的时候,取地址用&;空格的符号是\
阅读全文
摘要:三目运算符: 三目运算符: 10>5;是双目运算符;!10;是单目运算符; 三目运算符 格式:条件?数值1:数值2; int a = 10>5 ? 9 : 89;为真,返回前面的数;结果为9; 计算两个整数最大值:int a = 10; int b = 12;int c = (a > b):?a :
阅读全文
摘要:逻辑运算: 可以判断两个以上条件是否成立,由三种; 逻辑与;逻辑非;逻辑或;结果就是1和0;真和假; &&逻辑与;条件a&&条件b;只有a和b的结果都为1的时候,才为1; ||逻辑或;当a或b成立时,结果为1;都不成立,为0; 任何数值都有真假性; 运算过程;如果左边成立,还要看右边;这个针对的是逻
阅读全文
摘要:常量: 常量表示一些固定的数据;0.0是小数;0才0;浮点型加f;1.2f是单精度浮点;1.2是双精度; 字符串用的是双引号;字符是由单引号; 变量: 表示可变的数据; 怎么定义变量:变量类型+变量名;只要定义了这些,你就会在内存中有存储空间了; int score;变量名也是标识符的一种; 只要你
阅读全文
摘要:在某个条件成立的情况下执行某一段代码; 学会怎么判断条件;用真和假来规定条件是否成立; 只要不是0就是真;用来比较两个数的大小; 关系运算符也是比较运算符;=一个等号是赋值;==两个等号是等于; 结果只有两种;条件成立,返回1; 关系运算符优先级:优先级==和!=优先级相等;比这个高的有> 、<=
阅读全文
摘要:自增自剪;int a = 10; b = a++ + ++a; 例2:int b;int a = 10;b = a++;结果为a为11,b为10; 例3:int b;int a = 10;b = ++a;结果为a为11,b为11; 例4:int b;int a = 10;b = (++a) + (a
阅读全文
摘要:问题1:如何判断一个小数是float类型还是double类型,除了用sizeof看大小外? 问题2:听说float占的类型小,double占得类型大,所以在开发中能用float就用float吗? 说明:运行环境是在Mac电脑下的,Mac电脑是64位环境;
阅读全文
摘要:1.cd /0724如果没有这个/那么,就是在当前文件中查找;有/,则是相对路径; 2.main函数里面的代码是按顺序执行的; 3.main函数最好写在最前面; 4.永久性的数据存在硬盘上,属于静态数据; 5.动态数据存放在内存中;哪些数据是动态数据呢:一般的临时数据;开发人员最关心的是动态数据,放
阅读全文
摘要:写任何代码,要思考为什么要写;思考它代码的作用;
阅读全文
摘要:从左至右按顺序来: 1...切换当前断点可用和不可用 2...继续运行至洗一个断点 3...单步跳过某个方法 4...单步跳入某个方法 5...单步跳出某个方法 6...查看视图 7...给模拟器一个位置 8...线程 9...有人头的是自己写的方法,咖啡杯是框架底层东西
阅读全文
摘要:1.目前市面上的苹果手机尺寸和分辨率是:看看截图 a、ppi:是指每英寸像素的个数,普通显示器是72ppi; b、retina显示器不是像素的堆积 2.围绕着这样图,我们来解释一下参数,应该怎么理解,我们在设计应用的时候要注意什么? 我们要关注:分辨率分3种: A、资源分辨率,针对ps工程师(就是资
阅读全文
摘要:1,先看一下UIView都有些什么 2.UIView就是在视图生命周期提及到的视图,视图就是UIView 3.我们把下面截图的UIView可以分成7类: 第一类:控件:继承的是UIControl类,这个类的控件能够响应高级事件,一般如点击,滑动,开关; 第二类:窗口:就是UIWindow对象,一个图
阅读全文
摘要:1.直接把截图贴给大家了,把大概告诉大家,这样大家在开发的时候就可以知道自己到底每天在和哪一层打交道了 一:应该是从最上层到最下层: 第一层:Cocoa Touch层 第二层:Media层:Media层提供了图形,音频,视频等多媒体相关的技术 简介: OpenAL和OpenGL类似,AL主要是做3D
阅读全文
摘要:1.直接上一个大概的图,给大家参考一下: 2. viewWillAppear视图将要出现的时候调用 viewDidApperar视图已经出现的时候调用 viewWellDisappear视图将要消失的时候调用 viewDidDisappear视图已经消失的时候调用 3.下面说说真事环境的测试 - (
阅读全文
摘要:一。appdelegate每个方法的简单介绍: 1、应用程序启动,并进行初始化时候调用该方法:aaaplication:didFimnishLanuchingWithOptions: 2、应用进入前台并处于活动状态时候调用:applicationDidBecomeActive: 3、应用从活动状态进
阅读全文
摘要:一、#define宏定义 1.宏定义,像这样的就是宏定义:#define PI 3.14159; 2.宏定义格式:#define 宏名称 宏值;宏名称就是要定义的宏,通常用一个大写的有意义的名称来表示;宏值就是这个宏所代表的常量。; 3.#define是预编译指令; 4.宏的本质是一种替代。 5.当
阅读全文
摘要:1.很多时候都用在打印的时候,就是在count<<"打印内容 \ n 完成!"<<endl; cout<<"恭喜! \n 任务完成!"<<endl; 2.转义字符字符不可显示,但可以用来表示计算机响铃,换行,回车; 3.打印里面如果有字符串,需要用一对双引号(“ ”)括起来,如count<<"打印内
阅读全文
摘要:一。利用代理 A要把自己的值传给B,由B来显示,由B来处理:那么A要定义代理,在A.h中定义,在A.m中把要传的值放在代理方法里面传给B; B实现A的代理,在实现A代理方法里面,接收A代理方法中传过来的属性值;由B的控件展示; 如果是B想把自己的值传给A,就把上面的角色换一下。
阅读全文
|