![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
------------IOS学习笔记-----------
文章平均质量分 80
青山绿水之辈
奋斗青春年华
展开
-
第四十七篇:实现 服务端 与 客户端 之间 Socket 即时通讯
QJWebSocketDome简介本 Dome 基于 Socket框架, 主要的功能就是即时通讯功能,创建房间,并与发送信息给所有在房间内的客户端,与QQ群相似,群的人数可以是’>’=2个人在房间内。 Socket 即时通讯的 服务端 与 客户端 dome使用过程1、启动 Socket 服务器 node 01-搭建socket服务器.js2、打开 socketClientDome 工程,原创 2017-09-08 22:48:16 · 878 阅读 · 0 评论 -
第三十四篇:Quartz2D绘图
Quartz2D在iOS开发中的价值•自定义view(自定义UI控件)2.图形上下文1)图形上下文(Graphics Context):是一个CGContextRef类型的数据2)图形上下文的作用Ø保存绘图信息、绘图状态Ø决定绘制的输出目标(绘制到什么地方去?)(输出目标可以是PDF文件、Bitmap或者显原创 2015-10-27 19:30:49 · 1265 阅读 · 5 评论 -
第三十五篇:Quartz2D绘图--小黄人
在一个UIView上画图:代码://// QJView.h// 14-(2)画小黄人//// Created by 瞿杰 on 15/10/27.// Copyright © 2015年 itcast. All rights reserved.//#import @interface QJView : UIView@end//// QJView原创 2015-10-28 12:40:21 · 1433 阅读 · 0 评论 -
第十九篇:猜图游戏UI完整代码
QJQuestions.h文件:// QJQuestions.h// 04-猜图游戏//// Created by 瞿杰 on 15/9/23.//#import @interface QJQuestion : NSObject@property (nonatomic , copy)NSString * icon;@property (nonatomic , cop原创 2015-09-24 20:05:38 · 1758 阅读 · 0 评论 -
第十八篇:UI编程练习
汤母猫://// ViewController.m// tomCat//// Created by 瞿杰 on 15/9/20.//#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIImageView *tomCat;- (IB原创 2015-09-20 19:17:45 · 847 阅读 · 0 评论 -
第三十篇:控制器的生成与多控制器的管理
1.如何创建一个控制器》控制器常见的创建方式有以下几种:Ø通过storyboard创建Ø直接创建QJViewController *vc = [[QJViewControlleralloc] init];Ø指定xib文件来创建> QJViewController *vc = [[QJViewControlleralloc] initWithNibName:@"Q原创 2015-10-07 18:47:50 · 1291 阅读 · 0 评论 -
第三十二篇:数据存取
1.iOS应用数据存储的常用方式lXML属性列表(plist)归档lPreference(偏好设置)lNSKeyedArchiver归档(NSCoding)lSQLite3lCoreData2.应用沙盒》位置:/Users/用户名/Library/Developer/CoreSimulator/Devices如果不知道在哪里,可以在项原创 2015-10-10 17:50:54 · 1212 阅读 · 0 评论 -
第三十三篇:私人通迅录(有存储功能)
用了第三方框架:MBProgressHUDMain.storyboard:登陆页面://// QJLoginViewController.h// 13-私人通迅录//// Created by 瞿杰 on 15/10/9.// Copyright © 2015年 itcast. All rights reserved.//原创 2015-10-24 20:05:19 · 1989 阅读 · 0 评论 -
第九篇:OC中的万能指针id 及 构造方法的实现与应用
1.万能指针 id :》相似点:id 与 NSObject * 类型等价;》不同点:# NSObject 是所有类的基类,NSObject * 类型的指针只代表它自己的一种类型指针;而 id类型指针代表所有的类型指针。 # 在表现出多态时, NSObject * 需要强制类型转化,而id类型指针不需要。原创 2015-09-11 21:46:35 · 676 阅读 · 0 评论 -
第三十七篇:触摸事件
1.iOS中的事件•在用户使用app过程中,会产生各种各样的事件iOS中的事件可以分为3大类型 触摸事件 加速计事件 远程控制事件2.响应者对象•在iOS中不是任何对象都能处理事件原创 2015-11-04 19:32:53 · 1506 阅读 · 1 评论 -
第三十一篇:UIView常用属性与方法
@interface UIView : UIResponder/** * 通过一个frame来初始化一个UI控件 */- (id)initWithFrame:(CGRect)frame;// YES:能够跟用户进行交互@property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled;原创 2015-10-07 19:01:33 · 727 阅读 · 0 评论 -
第二十篇:滚动视图UIScrollView ,分页控制器UIPageControl 定时器 NSTimer
1.什么是UIScrollView:•移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限••当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容••普通的UIView不具备滚动功能,不能显示过多的内容••UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容2.UI原创 2015-09-26 16:36:46 · 1077 阅读 · 0 评论 -
第四十二篇:IOS 的 sqlite3 一些基本使用
一、sqlite3 使用操作 前提:在项目中导入 libsqlite3.0.tdb 数据库。1.sqlite3 相关一些基本函数用法:1.1、打开数据库SQLITE_API int sqlite3_open( constchar *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb原创 2017-06-23 11:29:47 · 2044 阅读 · 0 评论 -
第三十九篇:IOS核心高级动画 Core Animation、Core Graphics
一、 CALayer 图层:1. 图层属性及功能介绍:1)contents :id 类型, 内容显示。 在ARC环境下使用: = (__bridge id)image.CGImage; 在MRC环境下使用:去掉(__bridge id)2)contentsGravity:字符串型,图层的内容模式。功能与UIView 的contentMode用法相同;比如内容居中显示原创 2017-06-12 15:35:21 · 2685 阅读 · 0 评论 -
第四十六篇:MAC下使用 Node.js 实现一个 WebServer 服务器
引序:Node.js 采用一系列“非阻塞”库来支持事件循环的方式。Node.js是一个服务器端 JavaScript 解释器 , 也就是说 Node.js 是一个支持 JavaScript 语法编写服务器代码的环境。 // 代码在 github 上的链接 QJWebServerDome 的 git 地址在这里在MAC下用命令安装 Node.js安装 Homebrew ruby -e原创 2017-09-08 18:50:36 · 5353 阅读 · 0 评论 -
第四十五篇:ReactiveCocoaObjC使用
引导:首先如果要使用 ReactiveCocoaObjC 第三方框架就先需要导入该框架,我导入时使用了 cocoapods 导入的,在 podfile 文件中输入以下的内空:use_frameworks!target 'ReactiveCocoaDome' do pod 'AFNetworking', '~> 3.0.4' pod 'ReactiveObjC', '~> 3.0.0'e原创 2017-08-27 21:40:01 · 2980 阅读 · 0 评论 -
MAC 下 CocoaPods 安装与使用来管理项目第三方框架
一、CocoaPods 安装前言:思考如何引入一个第三方框架。 例如: 百度地图SDK、友盟、ShareSDK、 信鸽推送等。从github或某处下载第三方SDK工程中导入所需要的SDK的文件 .a 或 .framework添加SDK文件所依赖的系统的.framework。比如:需要导入SystemConfiguration.framework、CoreLocation.framework、UIK原创 2017-08-18 14:38:44 · 7057 阅读 · 0 评论 -
MAC安装 Carthage 工具来管理项目从 github上下载第三方框架
一、Carthage 安装第一步:打开终端,输入以下其中的一个命令行安装 Carthage // 更新 Carthage ,如果没有安装时这行命令会自动安装 brew update // 这个是直接安装命令行 brew install carthage 注意:如果在输入上面的命令行后出现错误:Error: /usr/local must be writable! 解原创 2017-08-17 18:19:53 · 2511 阅读 · 0 评论 -
IOS 错误信息集及解决问题
1. 今天上传包到 AppStore 时遇到了 ERROR ITMS-90034: "Missing or invalid signature........." 这个错误,之前钥匙串里证书过期了,就把所有的证书都设置为始终信任,于是改回为系统默认之后,再次提交成功了.原创 2017-08-10 20:04:37 · 406 阅读 · 0 评论 -
第四十四篇:iOS使用 runtime 与 响应式编程 KVO 原理
响应式编程 KVO 的原理1.简单实现 KVO功能一开始 self.person 的 isa 指针类型为 Person,当控制器被触摸时 self.person.age += 1 (调用了 Person 类的 setAge: 方法), 然后会调用监听方法,如下:-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)obje原创 2017-08-16 22:05:31 · 559 阅读 · 0 评论 -
第四十三篇:iOS链式编程Block
链式编程可以用点语法调用对象方法 如self.add(22).add(22).add(22);示例如下@interface ViewController ()@property (nonatomic , assign) NSInteger totale ;@endtypedef ViewController *(^ADDBlock)(NSInteger);@implementation View原创 2017-08-16 15:02:22 · 331 阅读 · 0 评论 -
第四十一篇:微信第三方登录
登录前效果图:登录后效果图:一、准备工作第一步:下载友盟SDK,下载友盟SDK 根据需要选择下载,下载完成后把 UMSocial 文件添加到工程中;第二步:添加配置,在 Build Settings --> Linking --> Other Linker Flags --> Debug 或 Release 对应的行后加入-ObjC ,注意不要写为-Objc原创 2017-06-15 16:54:48 · 1181 阅读 · 0 评论 -
第四十篇:GCD 多线程
一、Operation Objects1、相关类1)NSOperation 基类: 基类,用来自定义子类 operation object 。继承 NSOperation 可以完全控制 operation object 的实现,包括修改操作执行和状态报告的方式。2)NSInvocationOperation: 可以直接使用的类,基于应用的一个原创 2017-06-14 14:44:16 · 1457 阅读 · 0 评论 -
第二十九篇:UIPickerView简述与代码练习
一.UIPickerView1.UIPickerView的常见属性// 数据源(用来告诉UIPickerView有多少列多少行)@property(nonatomic,assign)id dataSource;// 代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择)@property(nonatomic,assign)原创 2015-10-06 13:40:14 · 826 阅读 · 0 评论 -
第十五篇:OC中 分类,关键字protocol 协议的声明与应用
1. 协议的定义:》协议就是用来声明一大堆方法的。@protocol 协议名称 // 方法声明列表..........@end2. 如何遵守协议 :》类遵守协议,本类就会拥有它遵守的协议所有的方法:@interface 类名 : 父类名 ............. // 类的声明@end》协议遵守协议,本协议就会拥有其他协议所有的方法:原创 2015-09-14 22:05:57 · 1691 阅读 · 2 评论 -
第二十三篇:UITableView,UIScrollView,NSTimer,UIButton综合应用代码---团购
效果图:Model://// QJTg.h// 08-团购//// Created by 瞿杰 on 15/9/29.//#import @interface QJTg : NSObject@property (nonatomic , copy)NSString * icon;@property (nonatomic , copy)NSStri原创 2015-09-29 21:01:46 · 873 阅读 · 0 评论 -
第八篇:编译器特性:关键字property与synthesize用法
1.property关键字:》property 是一个编译器特性。(1)在:xcode4.4版本以前》用法:@property 指定成员变量类型 指定去掉下划线的成员变量名 ;》用于在类声明中自动生成指定的 成员变量 set / get 方法(赋值 / 取值)的声明。@interface Iphone : NSObject{ int _cpu ;}原创 2015-09-11 20:09:20 · 561 阅读 · 0 评论 -
第二十二篇:UITableView练习代码
车的品牌展示:// Car.h// 07-UITableView练习-Car//// Created by 瞿杰 on 15/9/28.//#import @interface Car : NSObject@property (nonatomic,copy)NSString * icon;@property (nonatomic,copy)NSString * na原创 2015-09-28 19:02:49 · 773 阅读 · 0 评论 -
第六篇:OC类的成员变量的作用域
1.关键字:》@public ,@protected, @private ,@package2.@public作用域:》当成员变量属性为@public时,可以在其它文件中直接访问。》当成员变量属性为@public时,可以在其子类的方法中直接访问。3.@protected作用域:》OC中成员变量默认的关键字。》不能在其它文件中直接访问,可通过该类的方法间接原创 2015-09-11 14:01:07 · 863 阅读 · 0 评论 -
第十篇:new方法原理及注意点
1.new方法是NSObject类的类方法:+ (id)new;》原理:就是两个步骤:# 第一步:创建类对象分配内存;# 第二步:初始化》所以我们可以根据new原理来写与new方法原理相同的类方法,按照约定的格式:+(id)类名;》假设在Iphone类中实现:+ (id)iphone { return [ [self alloc] init ] ; //创建 与 初始化;原创 2015-09-12 00:18:43 · 639 阅读 · 0 评论 -
第七篇:类的本质与isa指针及SEL指针的关系
1.》两指针所在的类:isa指针 和 SEL指针 是属于NSObject基类。 》类的本质:即是一个结构体。2.当创建一个类后:》定义对象:类 * p = [类 new] ;》在定义一个对象之前,在堆内存中就先存在了一个该类的类类型对象,其中有一个SEL指针就是指向在代码区内该类的第一个方法。》定义一个对对象之后,在堆内存中创建了一个该类的对象,该对象包含了原创 2015-09-11 17:04:30 · 863 阅读 · 0 评论 -
第五篇:OC中特有的 点语法 对成员变量赋值与取值
1.在OC中 点语法 是特有的,只是用来对成员变量赋值与取值:// 声明Iphone类@interface Iphone : NSObject { int _cpu ;}// 按照约定的赋值方法- (void)setCpu(int )cpu;// 按照约定的取值方法- (int)cpu;@end//实现Iphone类原创 2015-09-11 00:15:07 · 1753 阅读 · 0 评论 -
第三篇:OC中 使用%@打印值时会调用description方法
1.在OC中description方法是属于NSObject类的方法:》对像方法:- (NSString *) description ;》类方法 :+ (NSString *) description ;2.当使用%@打印一个对象的时候会去调用对象的description方法:》假设有一个Iphone类,有很多属性,现在定义一个对象:Iphone *cp = [Iphon原创 2015-09-10 22:31:13 · 849 阅读 · 0 评论 -
第四篇:OC中的多态应用
1.什么是多态:》多态就是某一类事物的多种形态 如:猫 == 猫 == 动物 男人 == 男人 == 人 == 高级动物2.多态的前提:没有继承就没有多态3.多态代码的体现:用父类类型的指针指向了子类对象,这就是多态》例如:猫类 继承了 动物类 猫类 *p1 = [猫类 new];原创 2015-09-10 23:31:57 · 809 阅读 · 0 评论 -
第二篇:OC中类的继承
1.类继承的形式:@interface 子类A : 父类B........@end实现子类:@implementation 子类A.........//方法的实现@end2.继承的性质:》当A类继承了B类,A类就拥有了B类的 所有 成员变量 和 方法》在子类中不仅可以重写父类当中的对象方法,也可以重写父类当中的类方法》子类当中不能定原创 2015-09-10 22:08:48 · 744 阅读 · 0 评论 -
第十一篇:OC中类的互引用问题及解决方法
1.类的头文件互引用:》表现:在两个类A,B的声明中,A.h文件中导入了B.h,并且B.h文件中导入了A.h。 A.h文件中: #import #import "B.h" @interface A : NSObject ......... @end原创 2015-09-12 14:54:35 · 4232 阅读 · 0 评论 -
第二十一篇:UITableView的基本使用
1.如何展示数据》UITableView需要一个数据源(dataSource)来显示数据》UITableView会向数据源查询一共有多少行数据以及每一行显示什么数据等》没有设置数据源的UITableView只是个空壳》凡是遵守UITableViewDataSource协议的OC对象,都可以是UITableView的数据源2.tableView展示数据的过程(原创 2015-09-27 17:28:08 · 1401 阅读 · 5 评论 -
第二十五篇:QQ聊天界面
UIImage:》1.对于一张图片拉伸方法: 1.1.得先拿到一张图片img; 1.2.再跟据img的size 分出四根线(top,left,bottom,right)大小,那么四周的图片不会被拉伸,中间的会被拉伸。 1.3.调用以下的方法,参数:UIEdgeInsetsMake(top,left,bottom,right); UIImageResizingMod原创 2015-10-02 18:50:16 · 2002 阅读 · 2 评论 -
第二十八篇:程序启动原理
1.Info.plist常见的设置》建立一个工程后,会在Supportingfiles文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除》在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”》项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist”原创 2015-10-05 21:13:31 · 1479 阅读 · 1 评论 -
第十七篇:计算代码行数练习代码
用到Foundation中的一些类:NSManagerNSStringNSArray//// main.m// 10-计算代码行数//// Created by xxx on 15/9/16.// Copyright (c) 2015年 itcast. All rights reserved.//#import int countLineOfFile(原创 2015-09-16 11:23:22 · 1288 阅读 · 0 评论