- 博客(658)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 第四十七篇:实现 服务端 与 客户端 之间 Socket 即时通讯
QJWebSocketDome简介本 Dome 基于 Socket框架, 主要的功能就是即时通讯功能,创建房间,并与发送信息给所有在房间内的客户端,与QQ群相似,群的人数可以是’>’=2个人在房间内。 Socket 即时通讯的 服务端 与 客户端 dome使用过程1、启动 Socket 服务器 node 01-搭建socket服务器.js2、打开 socketClientDome 工程,
2017-09-08 22:48:16 898
原创 第四十六篇: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 5381
原创 第四十五篇: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 2991
原创 MAC 下 CocoaPods 安装与使用来管理项目第三方框架
一、CocoaPods 安装前言:思考如何引入一个第三方框架。 例如: 百度地图SDK、友盟、ShareSDK、 信鸽推送等。从github或某处下载第三方SDK工程中导入所需要的SDK的文件 .a 或 .framework添加SDK文件所依赖的系统的.framework。比如:需要导入SystemConfiguration.framework、CoreLocation.framework、UIK
2017-08-18 14:38:44 7074
原创 MAC安装 Carthage 工具来管理项目从 github上下载第三方框架
一、Carthage 安装第一步:打开终端,输入以下其中的一个命令行安装 Carthage // 更新 Carthage ,如果没有安装时这行命令会自动安装 brew update // 这个是直接安装命令行 brew install carthage 注意:如果在输入上面的命令行后出现错误:Error: /usr/local must be writable! 解
2017-08-17 18:19:53 2532
原创 第四十四篇: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 570
原创 第四十三篇: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 343
原创 IOS 错误信息集及解决问题
1. 今天上传包到 AppStore 时遇到了 ERROR ITMS-90034: "Missing or invalid signature........." 这个错误,之前钥匙串里证书过期了,就把所有的证书都设置为始终信任,于是改回为系统默认之后,再次提交成功了.
2017-08-10 20:04:37 421
原创 突然想到一道简单题,但也有深意!!
给出一个 n 第一个解法,费时:long long sum = 0 ; for (int n = 1; n <= 1000000000; n++) { if (n%3 == 0 || n%5 == 0) { sum += n ; } } printf(" %lld\n", sum);第二个解法,高
2017-08-03 23:25:08 635 4
原创 第四十二篇: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 2066
原创 第四十一篇:微信第三方登录
登录前效果图:登录后效果图:一、准备工作第一步:下载友盟SDK,下载友盟SDK 根据需要选择下载,下载完成后把 UMSocial 文件添加到工程中;第二步:添加配置,在 Build Settings --> Linking --> Other Linker Flags --> Debug 或 Release 对应的行后加入-ObjC ,注意不要写为-Objc
2017-06-15 16:54:48 1198
原创 第四十篇:GCD 多线程
一、Operation Objects1、相关类1)NSOperation 基类: 基类,用来自定义子类 operation object 。继承 NSOperation 可以完全控制 operation object 的实现,包括修改操作执行和状态报告的方式。2)NSInvocationOperation: 可以直接使用的类,基于应用的一个
2017-06-14 14:44:16 1469
原创 第三十九篇: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 2725
原创 第三十八篇:CAKeyframeAnimation--+CAShapeLayer+UIBezierPath用法,关键帧动画
有个很关键的属性:rotationMode// 把rotationMode设置=kCAAnimationRotateAuto根据曲线的切线自动旋转 keyframeAnimation.rotationMode =kCAAnimationRotateAuto ;//// ViewController.m// CAKeyframeAnimation--+CAShape
2017-03-24 21:14:38 1053
原创 第三十七篇:触摸事件
1.iOS中的事件•在用户使用app过程中,会产生各种各样的事件iOS中的事件可以分为3大类型 触摸事件 加速计事件 远程控制事件2.响应者对象•在iOS中不是任何对象都能处理事件
2015-11-04 19:32:53 1517 1
原创 第三十六篇:发送方式与真机调试过程
1.打电话:》打电话-方法1•最简单最直接的方式:直接跳到拨号界面NSURL *url= [NSURLURLWithString:@"tel://10010"];[[UIApplication sharedApplication] openURL:url];•缺点电话打完后,不会自动回到原应用,直接停留在通话记录界面》打电话-方法2•拨号之前
2015-11-04 18:35:51 1604
原创 第三十五篇: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 1450
原创 第三十四篇:Quartz2D绘图
Quartz2D在iOS开发中的价值•自定义view(自定义UI控件)2.图形上下文1)图形上下文(Graphics Context):是一个CGContextRef类型的数据2)图形上下文的作用Ø保存绘图信息、绘图状态Ø决定绘制的输出目标(绘制到什么地方去?)(输出目标可以是PDF文件、Bitmap或者显
2015-10-27 19:30:49 1280 5
原创 第三十三篇:私人通迅录(有存储功能)
用了第三方框架:MBProgressHUDMain.storyboard:登陆页面://// QJLoginViewController.h// 13-私人通迅录//// Created by 瞿杰 on 15/10/9.// Copyright © 2015年 itcast. All rights reserved.//
2015-10-24 20:05:19 2006
原创 最小堆排序
#includeconst int INF = 0x7fffffff;void exchange(int &a,int &b){ int tmp; tmp = a; a = b; b = tmp;}void heapFrist(int *array,int k,int len){ if(array == NULL || k <=0 || le
2015-10-12 00:58:20 691
原创 第三十二篇:数据存取
1.iOS应用数据存储的常用方式lXML属性列表(plist)归档lPreference(偏好设置)lNSKeyedArchiver归档(NSCoding)lSQLite3lCoreData2.应用沙盒》位置:/Users/用户名/Library/Developer/CoreSimulator/Devices如果不知道在哪里,可以在项
2015-10-10 17:50:54 1236
原创 第三十一篇:UIView常用属性与方法
@interface UIView : UIResponder/** * 通过一个frame来初始化一个UI控件 */- (id)initWithFrame:(CGRect)frame;// YES:能够跟用户进行交互@property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled;
2015-10-07 19:01:33 740
原创 第三十篇:控制器的生成与多控制器的管理
1.如何创建一个控制器》控制器常见的创建方式有以下几种:Ø通过storyboard创建Ø直接创建QJViewController *vc = [[QJViewControlleralloc] init];Ø指定xib文件来创建> QJViewController *vc = [[QJViewControlleralloc] initWithNibName:@"Q
2015-10-07 18:47:50 1304
原创 第二十九篇:UIPickerView简述与代码练习
一.UIPickerView1.UIPickerView的常见属性// 数据源(用来告诉UIPickerView有多少列多少行)@property(nonatomic,assign)id dataSource;// 代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择)@property(nonatomic,assign)
2015-10-06 13:40:14 839
原创 第二十八篇:程序启动原理
1.Info.plist常见的设置》建立一个工程后,会在Supportingfiles文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除》在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”》项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist”
2015-10-05 21:13:31 1488 1
原创 第二十七篇:QQ好友列表,UITableViewHeaderFooterView用法
1.设置tableView的headerView注要以下几个:#pragma mark - tableView代理方法- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ // 取得一个自定义的 headerView QJHeaderView * hea
2015-10-04 14:32:02 1993
原创 第二十六篇:通知中心 NSNotificationCenter
1.通知中心(NSNotificationCenter)•每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信•任何一个对象都可以向通知中心发布通知(NSNotification),描述自己在做什么。其他感兴趣的对象(Observer)可以申请在某个特定通知发布时(或在某个特定的对象发布通知时)收到这个通知2.通
2015-10-02 20:41:08 1056
原创 第二十五篇: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 2017 2
原创 第二十四篇:缩合练习代码---简单微博(自定义Cell)
1.效果图:2.写出的详细步骤:(1)向Main.storyboard里的控制器中添加一个UITableView控件。(2)ViewController类遵守两个协议(UITableViewDataSource , UITableViewDelegate),并使tableView属性与UITableView控件连线,设置当前控制器成为tableView的数据源对象和代理对象,实
2015-09-30 21:47:04 990
原创 第二十三篇: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 887
原创 第二十二篇: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 791
原创 第二十一篇:UITableView的基本使用
1.如何展示数据》UITableView需要一个数据源(dataSource)来显示数据》UITableView会向数据源查询一共有多少行数据以及每一行显示什么数据等》没有设置数据源的UITableView只是个空壳》凡是遵守UITableViewDataSource协议的OC对象,都可以是UITableView的数据源2.tableView展示数据的过程(
2015-09-27 17:28:08 1418 5
原创 第二十篇:滚动视图UIScrollView ,分页控制器UIPageControl 定时器 NSTimer
1.什么是UIScrollView:•移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限••当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容••普通的UIView不具备滚动功能,不能显示过多的内容••UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容2.UI
2015-09-26 16:36:46 1102
原创 第十九篇:猜图游戏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 1774
原创 第十八篇: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 862
原创 第十七篇:计算代码行数练习代码
用到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 1301
原创 第十六篇:OC中的Foundation框架练习
Foundation框学习推存博客:// Fundation#import // 14. 自定义一个Ball类,有一个颜色属性(只有黑色和白色)。typedef enum _BallColor{ BallColorRed, BallColorBlack,}BallColor;@interface Ball : NSObject@property
2015-09-15 21:48:26 1501
原创 第十五篇:OC中 分类,关键字protocol 协议的声明与应用
1. 协议的定义:》协议就是用来声明一大堆方法的。@protocol 协议名称 // 方法声明列表..........@end2. 如何遵守协议 :》类遵守协议,本类就会拥有它遵守的协议所有的方法:@interface 类名 : 父类名 ............. // 类的声明@end》协议遵守协议,本协议就会拥有其他协议所有的方法:
2015-09-14 22:05:57 1707 2
原创 第十四篇:OC中block存储代码块的定义与应用
1.如何定义block变量,形式:返回值类型 (^block变量名)(参数)》形式一求和的block变量: int (^sumBlock)(int , int ) ;》形式二:void (^voidBlock)() ;2.如何利用block封装代码: ^(int a , int b) { return a + b ;} ; // 有一个分号“ ; ”
2015-09-14 20:14:33 1702
原创 第十三篇:ARC自动引用计数器原理
1.指针分2种:》强指针:默认情况下,所有的指针都是强指针 __strong。》弱指针:__weak。说明:当一个弱指针指向一个创建出来的对象,而之后没有强指针指向该对象,那么该对象会在内存中被释放,弱指针被赋值成空 nil 。 代码表现形式: Dog * p1 = [ [Dog alloc] init ] ; // p1 为强指针,指向新创建出来的对象,引用计数器
2015-09-13 23:56:25 951 1
TA创建的收藏夹 TA关注的收藏夹
TA关注的人