自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IOS开发进阶之路

大道至简,知易行难,知行合一,得到功成。

  • 博客(79)
  • 收藏
  • 关注

原创 二 JavaScript之运算符

一.什么是表达式表达式是ECMAScript中的一个“短语”,解析器会通过计算把它转换成一个值。最简单的表达式是字面量或者变量名。例如:5.96 //数值字面量'Lee' //字符串字面量true //布尔值字面量 null

2016-04-05 21:01:15 2037

原创 一 JavaScript之数据类型

js中有5种简单数据类型:Undefined、Null、Boolean、Number和String。还有一种复杂数据类型——Object。ECMAScript不支持任何创建自定义类型的机制,所有值都成为以上6中数据类型之一。一.typeof操作符typeof操作符是用来检测变量的数据类型。对于值或变量使用typeof操作符会返回如下字符串。 字符串 描述 undefined 未定义

2016-04-05 16:09:59 1661

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-04-05 11:03:47 519

转载 UIView和CALayer的那些事儿

万剑归宗,UIView和CALayer都是的祖宗都是NSObjet。 继承结构UIView的继承结构为: UIResponder : NSObject。 UIResponder是用来响应事件的,也就是UIView可以响应用户事件CALayer的继承结构为: NSObject 直接从 NSObject继承,因为缺少了UIResponder类,所以CALayer悲催的不能响应任何用户事件。UI

2016-02-24 18:16:44 904

转载 SDWebImage内部实现过程

SDWebImage内部实现过程(新版本在各方法前加上了sd_前缀,以区分UIImageView+AFNetworking中的方法)1.入口 setImageWithURL:placeholderImage:options:会先把 placeholderImage 显示,然后 SDWebImageManager 根据 URL 开始处理图片。2.进入 SDWebImageManager-downlo

2016-02-24 11:12:24 1832

转载 iOS 数据存储的常用方式

一、iOS应用数据存储的常用方式1、XML属性列表(plist)归档2、Preference(偏好设置)3、NSKeyedArchiver归档(NSCoding) 所谓归档,是一个过程,即用某种格式来保存一个或者多个对象,以便以后还原这些对象4、SQLite35、Core Data二、数据存储 1、 pist文件读与写特点:只能存储OC常用数据类型(NSString、NSDict

2016-02-22 22:17:14 640

转载 关于TCP/IP,HTTP,Socket的那些事

SocketSocket是应⽤层与TCP/IP协议族通信的中间软件抽象层,它是一组接⼝。在设计模式中,Socket其实就是一个⻔面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对⽤户来说,⼀组简单的接⼝就是全部,让 Socket去组织数据,以符合指定的协议。先从服务器端说起1>服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accep

2016-02-17 16:34:51 2352

原创 No3 弹出菜单和二维码

一 显示弹出菜单点击用户名弹出菜单// MARK: - 监听点击事件 @objc private func titleBtnClick(titleBtn: XMGTitleButton) { // 1.修改标题按钮箭头的方向 titleBtn.selected = !titleBtn.selected // 2.创建菜单

2015-12-30 14:09:19 974

原创 源代码管理工具之 SVN

一 基本操作svn checkout : 将服务器代码完整的下载到本地svn commit : 将本地修改的内容,提交到服务器svn update : 将服务器最新的代码下载带本地 Checkout只需要做一次!要想利用SVN管理源代码,必须得有2套环境服务器用于存储客户端上传的源代码可以在Windows上安装Visual SVN Server大部分情况下,公司的开发人员不必亲自搭建SV

2015-12-26 15:41:03 811

原创 iOS 开发项目之 QQ 音乐

一 框架搭建添加一个毛玻璃效果- (void)setupBlurGlass{ // 1.创建UIToolbar UIToolbar *toolbar = [[UIToolbar alloc] init]; toolbar.barStyle = UIBarStyleBlack; [self.albumView addSubview:toolbar]; //

2015-12-23 16:49:10 849

原创 iOS开发实用技术之音频开发

录制音频创建一个录音对象/** 录音对象 */@property (nonatomic, strong) AVAudioRecorder *recorder;#pragma mark - 懒加载代码- (AVAudioRecorder *)recorder{ if (_recorder == nil) { // 1.获取音频存放的路径 // 1.1.

2015-12-23 14:27:55 442

原创 iOS开发实用技术之第三方登陆

第三方登陆基本介绍为什么需要第三方登录每一个APP都希望用户尽可能多的参与进去,以增加用户之间的粘合度比较火的第三方登录平台QQ - 从PC端转型到移动端新浪微博 - 相当于国外的推特,用户量很大 微信 - 国内移动端最大用户群的应用第三方登陆的原理使用用户的QQ/微博/微信账号生成的ID作为用户身份的标示 选择第三方登录—-授权—-获取对应ID和AccessToken—获取用户相关信

2015-12-22 15:25:35 919

转载 如何正确使用const,static,extern

一、const与宏的区别(面试题):const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。编译时刻: 宏是预编译(编译之前处理),const是编译阶段。编译检查: 宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误。宏的好处: 宏能定义一些函数,方法。 const不能。宏的坏处: 使用大量宏,容易造成编译时间久,每次都

2015-12-21 15:14:06 467

原创 新浪微博项目之新特性界面

实现分析控制器的 view上有一个 scrollview,scrollview 上添加 view;UIPageController添加到控制器 view 上(不能加到scrollview)代码实现新特性页面GGNewfeatureViewController#define GGNewfeatureCount 4- (void)viewDidLoad { [super viewDi

2015-12-02 15:33:08 491

原创 项目实战 网易彩票3

一 initialize方法+ (void)initialize第一次使用这个类或者它的子类的时候调用,但是并不是说只会调用一次。初始化子类的时候,先初始化父类,在初始化子类 + (void)load如果一个类只想做一次操作的时候,在load方法里去调用二 新特性界面加立即体验最后一个 cell 加上立即体验 封装方法最后一个 cell 判断方法 XMGNewFeatureCell/

2015-11-22 10:39:19 1197

转载 UIViewController的生命周期

当一个视图控制器被创建,并在屏幕上显示的时候。代码的执行顺序:1、 alloc 创建对象,分配空间2、init (initWithNibName) 初始化对象,初始化数据3、loadView 从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图4、viewDidLoad 载入完成,可以进行自定义数据以及动态创建其他控件5、viewWillAppear 视图将出现在屏幕

2015-11-21 10:49:28 422

原创 项目实战 网易彩票2

一 竞技场栏目实现自定义控制器的view- (void)loadView{ UIImageView *bgV = [[UIImageView alloc] initWithFrame:XMGKeyWindow.bounds]; bgV.image = [UIImage imageNamed:@"NLArenaBackground"]; // 一定要运行

2015-11-19 21:31:28 1209

原创 项目实战 网易彩票1

一 基本搭建main->UIApplicationMain底层实现1.创建UIApplication对象2.创建UIApplication对象代理3.开启主运行循环,保持程序一直运行4.加载info.plist文件,判断下是否指定mainint main(int argc, char * argv[]) { @autoreleasepool { return UIA

2015-11-19 10:20:26 889

转载 iOS开发数据库篇—FMDB简单介绍

一、简单介绍1.什么是FMDBFMDB是iOS平台的SQLite数据库框架FMDB以OC的方式封装了SQLite的C语言API2.FMDB的优点使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码对比苹果自带的Core Data框架,更加轻量级和灵活提供了多线程安全的数据库操作方法,有效地防止数据混乱3.FMDB的github地址https://github.com/ccgus/fmd

2015-11-17 11:14:22 335

转载 iOS深入学习Block

第一部分定义和使用Block- (void)viewDidLoad{ [super viewDidLoad]; //(1)定义无参无返回值的Block void (^printBlock)() = ^(){ printf("no number"); }; printBlock(); printBlock(9); int mutipl

2015-11-16 22:27:09 389

转载 iOS开发:使用Block在两个界面之间传值

需求首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面。第二个界面的只有一个UITextField,是为了输入文字,当输入文字,并且返回第一个界面的时候,当第二个视图将要消失的时候,就将第二个界面上TextFiled中的文字传给第一个界面,并且显示在UI

2015-11-16 21:09:39 593

原创 No3 jQuery

一 JS实现瀑布流搭建HTML结构<body> <!--父标签--> <div id="pall"> <!--盒子--> <div class="box"> <div class="pic"> <img src="images/0.jpg"> </div>

2015-11-15 14:48:31 1155

原创 No2 JavaScript

一 JavaScript简介什么是JavaScript JavaScript是一门广泛用于浏览器客户端的脚本语言业内一般简称JS 脚本语言: 缩短传统的编写-编译-链接-运行过程,解释运行而非编译运行JS的常见用途HTML DOM操作(节点操作,比如添加、修改、删除节点)给HTML网页增加动态功能,比如动画事件处理:比如监听鼠标点击、鼠标滑动、键盘输入什么是Node.jsNode是一个

2015-11-14 16:11:22 309

原创 No1 HTML5+CSS

一 HTML5前言为什么要用HTML51> 跨平台 利用HTML5编写的UI界面能运行在所有拥有浏览器的平台2> HTML5的运行平台:浏览器3> 但是HTML5不能完成一些特定的功能,比如:拍照(ImagePickerController)、访问相册….如何使用HTML51> 自己编写大量的HTML5代码2> 使用现成的HTML5框架 sencha-touchphoneGapjQ

2015-11-14 11:57:27 445

转载 IOS如何选择图片加载方式:imageNamed和imageWithContentsOfFile的区别

一、imageNamedimageNamed的优点在于可以缓存已经加载的图片。苹果的文档中有如下说法:This method looks in the system caches for an image object with the specified name and returns that object if it exists. If a matching image object i

2015-11-12 17:04:43 507

转载 [单例、代理 & 通知]

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。1、单例-sharedXxx单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如

2015-11-11 23:26:15 416

原创 IOS单例模式(Singleton)

单例模式算是开发中比较常见的一种模式了。在iOS中,单例有两种实现方式(至少我目前只发现两种)。 根据线程安全的实现来区分,一种是使用@synchronized,另一种是使用GCD的dispatch_once函数。 手写单例在面试中有可能会遇到,以下2种写法2选11、@synchronizedstatic InstanceClass *instance;+ (InstanceClass *)

2015-11-11 23:08:34 564

转载 Block的基本用法

NSString* (^myBlock)(NSString*, int);myBlock = ^(NSString *name, int age){ return [NSString stringWithFormat:@"My name is %@,I‘m %d years old!",name,age];};NSString *str = myBlock(@"胡晓伟",31);NSLo

2015-11-10 00:14:51 394

转载 UICollectionView实现瀑布流

ViewController.h文件@interface ViewController : UIViewController<UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>@property (nonatomic, strong) UICollectionView *collectionView;@endViewCo

2015-11-09 23:30:23 406

转载 UICollectionView详解

UICollectionView入门介绍什么是UICollectionViewUICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式)。标准的UICollectionView包含三个部分,它们都是UIView的子类:Cells 用于展示内容的主体,对于不同的cell可以指定不同尺寸

2015-11-09 21:20:45 1141

原创 No4 私人通讯录

一 搭建界面LoginViewController// 设置账号文本框的代理,不能及时监听文本框的内容改变 _accountField.delegate = self;/ 拦截用户的输入,每次用户想要修改文本框的内容的时候就会调用// 这个方法不能及时监听文本框的内容改变- (BOOL)textField:(UITextField *)textField shouldChangeCha

2015-11-08 19:42:01 471

原创 多线程与网络B

网络基础在网络编程中,有几个必须掌握的基本概念: 客户端(Client):移动应用(iOS、android等应用)服务器(Server):为客户端提供服务、提供数据、提供资源的机器请求(Request):客户端向服务器索取数据的一种行为响应(Response):服务器对客户端的请求做出的反应,一般指返回数据给客户端服务器按照软件开发阶段来分,服务器可以大致分为2种 远程服务器 别

2015-11-05 19:26:17 788

原创 多线程与网络A

多线程基础进程什么是进程 进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内通过“活动监视器”可以查看Mac系统中所开启的进程线程什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)一个进程(程序)的所有任务都在线程中执行线程的串行1个线程中任务的执行是串行的 如果要在1个线程中执行多个任务,那么只能

2015-11-05 19:16:28 381

原创 No9 SQLite

一 SQLite基础什么是SQLiteSQLite是一款轻型的嵌入式数据库它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了它的处理速度比Mysql、PostgreSQL这两款著名的数据库都还快什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库数据库可以分为2大种类 关系型数据库(主流)对象型数据库常用关系型数据库 PC端:Oracle、

2015-11-03 15:34:00 634

转载 ios中的夜间模式(通知中心)

这个夜间模式不是颜色反转的那种,其实很简单,就是在window上面铺了一层view,把这个view的变成黑色,在调一下透明度就ok了,下面给大家看看代码实现吧这段代码要在AppDelegate中实现:- (instancetype)init{ self = [super init]; if (self) { NSNotificationCenter *center

2015-10-31 21:19:43 906

转载 关于TableViewCell的重用机制

static NSString *CellTableIdentifier = @"CellTableIdentifier "; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellTableIdentifier]; if (cell == nil) { cell = [[[UI

2015-10-29 00:19:40 464

转载 IOS 多线程原理

iPhone中的线程应用并不是无节制的,官方给出的资料显示iPhone OS下的主线程的堆栈大小是1M,第二个线程开始都是512KB。并且该值不能通过编译器开关或线程API函数来更改。只有主线程有直接修改UI的能力。一.线程概述一个运行着的程序就是一个进程或者叫做一个任务,一个进程至少包含一个线程,线程就是程序的执行流。 Mac和iOS中的程序启动,创建好一个进程的同时, 一个线程便开

2015-10-28 23:36:37 431

转载 IOS代理协议与委托

总结delegate和protocol关系拿来给大家分享一下:把自己不想干的一些事情(洗衣做饭)找个助手来帮助你做,而你要的这个助手得有一定的能力,不是任何一个人都可以的,所以你就得有个招聘要求。协议(protocol)就类似于你的招聘要求,你找到的助手就是代理(delegate)。 这样就有了我.delegate = 助手;好了这样以后再有洗衣做饭的活直接找助手做就可以了。协议不是类,以@pr

2015-10-28 23:27:10 424

原创 iOS开发实用技术之真机调试、内购/广告

一 真机调试什么是真机调试? 简单理解就是将App项目运行到真机上进行测试怎样做真机调试 Xcode7.0之前,并不是任何人,任何电脑,任何APP,任何真机设备都可以进行真机调试的 Xcode7.0之后, 做真机调试, 非常简单, 只需要拥有Apple ID即可, 不需要以上限制Xcode7.0之前限制人 (1)必须拥有Apple ID(https://appleid.apple.c

2015-10-27 17:27:06 1393

原创 No5 触摸事件

一 Modal除了push之外,还有另外一种控制器的切换方式,那就是Modal任何控制器都能通过Modal的形式展示出来Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为止以Modal的形式展示控制器- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:

2015-10-24 20:18:26 473

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除