自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

慢慢向上爬的蜗牛的博客

只是一个还在入门的小程序员, 若是大神看到, 受宠若惊 无比欢迎斧正!

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

原创 本博简介

本博主要更新的是小博主IOS开发学习过程中的课堂上的随手笔记如果有相关知识要点未提及, 或是疏漏 错误 均感谢并欢迎提醒附: 若是博客的排版问题影响阅读..还是笔记上逻辑混乱导致看官云里雾里  在此先说抱歉...  小博主只是新手  一切都在学习阶段   欢迎指导和意见  拜谢!最后:  欢迎交流!   欢迎交流! 欢迎交流!   重要的事说三遍愿大家一同进

2015-10-14 22:05:59 666 2

原创 AVFoundation支持的音视频格式

AVFoundation支持音频文件(.caf、.aif、.wav、.wmv和.mp3)的播放 ,而在此框架下的AVPlayer支持的格式如下: 支持视频格式: WMV,AVI,MKV,RMVB,RM,XVID,MP4,3GP,MPG … 支持音频格式: MP3,WMA,RM,ACC,OGG,APE,FLAC,FLV… 支持外部字幕: smi,srt,ass,sub,txt…

2016-10-08 09:24:42 2203 1

原创 宏定义快捷应用之创建单例

// 宏定义如下:// .h文件// 意思为在需要创建成单例的类的.h文件中调用此宏定义#define SingletonH(name) + (instancetype)shared##name;// .m文件// 意思为在需要创建成单例的类的.m文件中调用此宏定义#define SingletonM(name) \static id _instance; \\+ (instanc

2016-06-27 19:45:20 425

转载 可变参数宏__VA_ARGS__

可变参数宏VA_ARGS 在 GNU C 中,宏可以接受可变数目的参数,就象函数一样,例如:#define pr_debug(fmt,arg...) \printk(KERN_DEBUG fmt,##arg)用可变参数宏(variadic macros)传递可变参数表 你可能很熟悉在函数中使用可变参数表,如: void printf(const char* format, …); 直到最近

2016-06-27 17:26:54 485

转载 @synthesize obj=_obj的意义详解 @property和@synthesize

http://hi.baidu.com/feng20068123/item/ca8952fa661e5342932af2c2写的非常不错,攒一个!!!!我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一个比较基本的问题,也关乎我们理解

2016-01-19 14:55:59 380

转载 Xcode7真机调试

1.准备注意:一定要让你的真机设备的系统版本和app的系统版本想对应,如果不对应就会出现一个很常见的问题:could not find developer disk image首先,准备好下面的设备机相关软件MAC版本:OSX10.10.4Xcode版本:Xcode7 beta5(点击下载)真机设备:iPad Air(iOS 8.1.3)/iphone 6

2016-01-15 09:04:47 560

转载 IOS上 关于状态栏的相关设置(UIStatusBar)

IOS上 关于状态栏的相关设置(UIStatusBar)知识普及ios上状态栏 就是指的最上面的20像素高的部分 状态栏分前后两部分,要分清这两个概念,后面会用到:前景部分:就是指的显示电池、时间等部分;背景部分:就是显示黑色或者图片的背景部分;如下图:前景部分为白色,背景部分为黑色 注意:这里只涉及到ios7以及更高版本

2016-01-11 20:13:14 494

原创 爬爬爬之路:UI(二十) iOS动画 通知

iOS基本动画在iOS开发中, 基本动画主要有UIView动画和layer动画(层动画)两种UIView动画UIView动画的特点: 全是类方法, 直接用类(UIView)调用 主要分为两大类方法:UIView 直接调用的类方法Block方法具体的稍后慢慢介绍UIView直接调用的方法UIView直接调用的方法实现动画效果 需要遵循一个固定步骤步骤一 开始动画+ (void)beginA

2015-12-16 22:38:46 937

原创 爬爬爬之路:UI(十九) 多线程

多线程原理:CPU工作时 同一时间只能执行一个任务, 之所以可以造成多条线程一起执行的假象 是CPU高速的在线程之间切换(调度) 来达到多个任务一起执行的效果.进程和线程: 正在活动或者(运行的应用程序, 就是一个进程)每一个进程 都至少有一条线程 叫主线程除了主线程以外的都叫子线程子线程可以有很多个 但是线程是耗费资源的在iOS程序中 子线程一般最多不超过5条 注:正常来说3条最佳主

2015-12-14 21:46:58 608

原创 爬爬爬之路:UI(十八) 集合视图(UICollectionView)

UICollectionView集合视图和TalbeView有许多相似之处, 和TableView不同的是, TableVIew是以行为单位, 每行拥有一个TableViewCell, 而集合视图是一一个item作为单位, 一行可以有多个item. 而每个Item的大小也可以不同, 通常需要自己重新定制.集合视图和TableView相同的是, 可以设置分区数, 可以设置每个分区下的成员个数. 可以

2015-12-11 17:53:20 717

原创 爬爬爬之路:UI(十七) 数据持久化(SQLite3数据库实现)

常见的数据库目前常见的数据库有MySQL,Oracle,sql server,SQLite等等 其中Oracle, MySQL 目前均属于Oracle(甲骨文)公司, sql server是属于微软的数据库, 这三者都是大型的企业级数据库SQLite是轻量级数据库, 目前在iOS开发中, 使用的就是SQLite的新版本SQLite3.数据库是以表的形式储存数据, 一张表就对应了一个相关联的数据集合

2015-12-10 23:49:46 693 1

原创 爬爬爬之路:UI(十六) 数据持久化初级(沙盒实现)

沙盒机制沙盒是什么?iOS应用在运行的时候, 系统会自动为其开辟一个独立的区域, 通常生成3个文件夹用于存放应用的非代码文件, 存放的内容包括图像, 图标, 声音, 视屏, 文本文件等等等等. 这块区域就称为沙盒.沙盒机制每个应用程序都会自动生成3个文件夹, 分别是Documents, Library, tmp.每个应用程序的沙盒是互相独立的, 无法在一个应用程序中访问另一个应用程序的沙盒.每

2015-12-08 14:19:04 666

原创 爬爬爬之路:UI(十五) KVO

KVO的简单介绍KVO概念KVO:(Key-Value-Observer)键值观察者,是观察者设计模式的⼀种具体实现。 KVO触发机制:⼀个对象(观察者),监测另⼀对象(被观察者)的某属性是否发⽣变化,若被监测的属性发⽣的更改,会触发观察者的⼀个⽅法(⽅法名固定,类似代理⽅法)KVO使⽤步骤:注册观察者(为被观察者指定观察者以及被观察属性)实现回调⽅法触发回调⽅法(被观察属性发⽣更改)移除

2015-12-05 11:28:50 667

原创 爬爬爬之路:UI(十四) 网络请求

上篇文章已经提到怎样解析数据, 也提到了怎样读取本地文件. 本文讲解的怎样从网络获取APP的真实数据.p.s 本文以Xcode6为环境, Xcode7在网络请求相关的类和方法中做了许多改动, 以下方法会在Xcode7中报黄. 有兴趣的同学可以自行查看Xcode7的网络请求写法. 以下以讲解步骤原理为主.代码展示在说明原理之前, 先贴上GET方法的同步请求代码, 和GET方法的两种异步请求代码 G

2015-12-03 21:21:11 802

原创 爬爬爬之路:UI(十三) 数据解析

引言首先先思考一个问题: 一个APP展示出来的数据是从哪里获取的?数据来的来源一般分为两种, 一种是本地读取, 一种是网络请求.本地读取是静态的, 除非手动更改数据的源数据 否则显示的内容是一直不变的. 这种数据称为加数据.另一种是通过网络请求, 通常是给一个网络链接作为接口. 接口里的内容是可以根据网络数据动态修改的.我们通常使用的APP的数据绝大多数都是通过网络请求而来. 而怎么把网络请求来的数

2015-12-02 20:38:28 779 1

原创 爬爬爬之路:UI(十二) 单例 UITabBarController 高级Block的应用

单例Sington从程序开始到结束就一个对象.单例不需要释放, 在程序运行结束后会自动释放单例的写法:+ (MySington *)sharedHandle { static MySington *handle = nil; if (handle == nil) { handle = [[MySington alloc] init]; } return

2015-11-29 20:51:01 1277

原创 爬爬爬之路:UI(十一) UITableView(三) 自定义Cell 多Cell混合 自适应高度 及cell的状态控制

自定义Cell引言UITableView中的数据显示 必须通过UITableViewCell进行.由于系统定义的UITableViewCell只有简单的几种样式, 当我们需要完成一些复杂的界面操作的时候, 系统定义的UITabeViewCell就不够用了.此时的最佳解决方案就是我们自己定义一个cell.自定义Cell的步骤创建一个继承自UITableViewCell的子类重写其初始化方法把需要

2015-11-24 23:06:10 789

原创 爬爬爬之路:UI(十) UITableView(二) UITableView编辑 UITableViewCell移动

UITableView编辑状态UITableVIew编辑分为两种状态删除添加UITableView添加和删除对TableView进行编辑分为以下步骤开启TableView的编辑状态主要用到的方法: - (void)setEditing:(BOOL)editing animated:(BOOL)animated; 在某个事件响应方法中利用tableView对象调用本方法开启tableView

2015-11-24 21:32:55 670

原创 爬爬爬之路:UI(九) UITableView(一) MVC模式M层的应用

UITableViewUITableView是继承自UIScrollView的滚动表视图. 且只能纵向滚动 UITableView主要由Section(分区)和row(行数)两个NSInteger类型和UITableViewCell(单元格, 用于设置每行的具体内容的封装类)3个数据结构构成UITableViewCell是系统已经封装好的一个类, 它里面自带了一些控件, 比如UIImageView

2015-11-21 19:27:38 726

原创 爬爬爬之路:UI(八)UINavigationController 界面传值

UINavigationController工作原理导航视图控制器, 是iOS应用中最常用的多试图控制器之一, 它用来管理多个视图控制器.具体来说, 导航视图控制器是一个用来管理一组有层级关系的视图控制器的控制器UINavigationController自带一个半透明的导航条(UINavigationBar). 导航条竖屏状态下的高度是44. 横屏状态下的高度是32 状态栏的高度是20 在整

2015-11-21 11:50:43 1013

原创 爬爬爬之路:UI(七) UIScrollView,UIScrollViewDelegate UIPageControl 方法总结

UIScrollViewUIScrollView 擅长处理滑动界面和缩放界面两大功能常用属性一. 滚动相关@property (nonatomic) CGPoint contentOffset; 偏移量, 设置原点的偏移@property (nonatomic) CGSize contentSize; ScrollView内容的范围, 也就是可滑动的范围 只有contentSize大

2015-11-18 22:50:31 890

原创 爬爬爬之路:UI(六) UISegmentedControl UISlider NSTimer的简单应用

UISegmentedControlUISegmentedControl(分段控制器)继承自UIControl属性@property(nonatomic,readonly) NSUInteger numberOfSegments; 用于获取分段数, 只读. 不能用于更改segment的分段数@property(nonatomic) NSInteger selectedSegmentIndex

2015-11-17 21:32:32 876

原创 爬爬爬之路:UI(五) 全局引用 解耦的两种方法 手势识别器

全局引用第一步 新建文件在Xcode中新建文件 other-> PCH File 勾选Targets的第一个选项 注意是新建在工程里第二步设置文件的绝对路径 PCH不同于普通文件. 它识别的是绝对路径. 当工程放置于其他电脑上, 会导致本文件无法被正常识别 解决方法: 工程设置Build Settings -> All -> 查找到Prefix Header 在未设置路径时, 该

2015-11-16 23:18:36 668

原创 爬爬爬之路:UI(四) 晃动响应 触摸响应 响应者链 显示动态图片

引言其实, 手机做的只有两件事. 一个是显示信息, 一个交互. 对于开发者来说, 显示信息属于铺设界面. 交互则属于事件响应. 对于ios开发人员而言, 苹果已经提供了一套完整的硬件支持, 类库, 框架和响应方法接口. 我们只需要获取这个接口, 并写入操作信息, 系统会自动响应我们的代码逻辑.先说响应者链在之前的文章中已经大致的提过. 必须是继承自UIResponder类的子类才拥有响应事件的

2015-11-14 16:31:13 1256

原创 爬爬爬之路:UI(三)自定义视图 MVC浅谈 视图控制器 屏幕旋转事件获取

自定义视图自定义视图是一种封装的方法通常一些复杂的界面都是由一些常用的控件组合构成的, 将这些组合提取出来.写成一个组合控件, 在完成复杂界面的时候, 就可以通过组合控件简化界面的逻辑.这个组合控件就称为自定义视图. 自定义视图的优劣取决于它的复用性. 自定义视图的复用性越高, 则它的质量就越高. 一个高质量的自定义视图, 可以让程序员在铺设界面的时候极大的缩减代码量和时间.如何完成一个自定义视图

2015-11-14 14:32:41 745

原创 爬爬爬之路:UI(二) UITextField UIButton 程序生命周期简介

UITextFieldUITextField的常用属性text 放回值类型: NSString * 作用: 获得文本框中的文字borderStyle 返回值类型: UITextBorderStyle 作用: 设置文本框的样式 具体有: typedef NS_ENUM(NSInteger, UITextBorderStyle) { UITextBorderStyleNo

2015-11-11 23:36:18 1033

原创 爬爬爬之路:UI(一) UIView UILabel

前提对手机应用的使用, 点击, 触碰, 扫划. 统称为为交互. 看到的图像, 图片是应用的界面. 手机应用, 最重要的就是界面和交互.应用大体分为 展示类, 地图类, 多媒体类, 即时通讯(微信, QQ等)类不同于OC使用的Foundation框架(Foundation的类型名通常由NS开头), UI使用的框架是UIKit. UI空间的类型名通常是UI开头的不同于C语言 OC语言等语言 需要写

2015-11-10 22:34:06 585

原创 爬爬爬之路:OC语言(十) 内存管理(高级),多态简介

retain属性setter方法写法原理解析以retain属性的setter方法实现为例. 以assign的set get举例Person类里有一个属性 @property (nonatomic, assign) NSString *name; 它对应的setter getter方法如下:- (void) setName : (NSString *)name { // setter方法

2015-11-07 17:45:35 445

原创 爬爬爬之路:OC语言(九) 内存管理(初级)

内存管理的必要性由于从早期开始, 手机由于工业和大小的限制, 在手机上的内存是有限制的. 从早期的512k开始, 到1GB, 2GB乃至4GB但是手机上的应用数不胜数. 所以这需要手机的操作系统给一个应用分配一个空间, 如iPhone 5S给一个程序分配的内存是80M. 而像图片 音频 视频等资源是极其耗内存(如一张高清图片4M左右)的. 如果不对手机内存加以管理, 可能导致80M分分钟被占满, 然

2015-11-06 22:41:55 468

原创 爬爬爬之路:OC语言(八) 属性 KVC简单介绍

属性属性的定义Objective-C 2.0定义的语法, 为实例变量提供了setter getter方法的默认实现 能在一定程度上简化程序代码 声明属性关键字@property 如果实例变量为_xxx 声明为属性时把下划线去掉写成xxx声明成属性 代表系统默认帮助我们实现了setter和getter方法的声明 声明中: @property NSString *name;(此时称name为属

2015-11-04 22:58:38 686

原创 爬爬爬之路:OC语言(七) NSDate , 协议和代理

*NSDate1. 初始化方法有:``` // 创建一个距离现在时间n秒后的日期(昨天加上 -)+ (instancetype)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs; // 创建一个距2001年1月1日n秒后的日期+ (instancetype)da

2015-11-03 20:21:45 463

原创 爬爬爬之路:OC语言(六) Block语法简介

回顾函数指针在学习Block语法之前需要先回顾一下函数指针 因为Block语法与函数指针非常相似 函数指针, 顾名思义就是指向函数的指针1. 函数指针的定义如定义一个函数如下:```int sumValue(int num1, int num2) { return num1 + num2;}```这本函数的类型为`int (int num1, int num2)`(去除函数名 即是

2015-11-02 20:21:13 848

原创 爬爬爬之路:OC语言(五) 字典 集合常用方法介绍

字典OC中字典是一个类似与数组的容器 保存的是一个个 键值对 所谓键值对 就是 一个key(键)对应一个value(值) 两者合成一个键值对 字典保存的内容是无序的, 不能像数组一样通过下标取出元素 字典存取元素需要通过唯一标识的key, 通过key获得对应的值. 存元素的的时候也需要给定一个唯一标识的key元素和值 都必须是对象key作为键值, 具有唯一性, 在开发中一般使用字符串

2015-10-30 23:10:29 597

原创 爬爬爬之路:OC语言(四) NSString NSSArray NSValue常用方法介绍

不可变字符串NSString1. 利用系统的类 初始化一个对象创建一个NSString对象, 调用其自定义初始化方法, 并对其进行初始化 NSString *str = [[NSString alloc] initWithString: @"123"]; 相当于NSString *str = @"123";NSLog(@"%@", str);打印结果为123用系统的便利构造器方法初始化对象

2015-10-29 22:34:19 1185 1

原创 爬爬爬之路:OC语言(三) 继承

继承的理解继承从生活逻辑上理解是继承者从被继承者身上获得一些已有的信息, 财产等在面向对象中也一样, 继承是子类从父类中获得父类的全部实例变量和方法(父类在.h中声明的实例变量和方法)继承的优点:减少代码量, 提高工作效率   解释: 子类从父类中获得父类的实例变量和方法, 这时就不需要在子类中再写和父类中出现的代码了, 节省了所有父类中的全部代码. (父类中@private 声明的实例变量

2015-10-28 21:25:30 441

原创 爬爬爬之路:OC语言(二) 类

前言类 是具有相同特征和行为的事物的抽象 万事万物皆对象对象是类的实例类是对象的类型面向对象的特点分为:封装继承多态 如何看懂OC中的一个类在OC中 一个类中的成员, 分为实例变量和方法两种 写在.h文件中的方法在类外是可以调用的. 而实例变量虽然写在.h文件中, 但是它们能否在类外可以调用需要根据他们的修饰符定义的: 实例变量的可见度 可见度 特点 public

2015-10-27 22:17:57 572

原创 爬爬爬之路:OC语言(一) 语法简介

前言OC是对C语言的扩充. C语言的弊端: 维护升级十分复杂 面向对象的特点: 封装 继承 多态 什么是对象: 万物皆对象OC的特点是C语言的超集, 允许在OC中使用C语言的源代码. 编译器兼容C语言程序具备完善的面向对象特性包含一个运行时系统类库丰富(指开发人员写的类库)分析对象是最重要的一环, 是保证程序的扩展性 健壮性 最重要的一步. 面向对象编程设计:分析设计到的对下

2015-10-26 21:46:30 844

原创 爬爬爬之路:C语言(十一) 函数指针(回调函数)

函数指针函数指针就是指向函数的指针类似于结构体和数组, 函数的的名字 就是这个函数保存的常量地址 可以通过函数指针指向指定的函数空间, 实现该函数的功能例如两个函数:int Sum(int a, int b);int Sub(int a, int b);定义这两个函数的函数指针的声明方法: int (*p)(int a, int b) (参数名可以省略, 写成 int(*p)(int,

2015-10-22 21:05:43 529

原创 爬爬爬之路:C语言(十) 动态内存分配

前言C语言内存分为5个区域: 按照地址顺序排序如下: 高(地址编号大): ↑栈区:  程序运行的空间 ↑堆区:  程序员手动管理的区域 ↑静态区 ↑常量区 ↑代码区 低(地址编号小):代码区电脑的存储都是以二进制数据进行存储的 程序员写的代码都会被电脑编译转化保存在代码区常量区常量区存储的特点:常量区中的值是不可以被改变的, 如代码: char *str = "zhuang

2015-10-21 23:01:37 460

原创 爬爬爬之路:C语言(九) 结构体指针与预编译指令

结构体指针结构体是一种自定义的数据类型 结构体的指针和基础数据类型差不多 结构体变量名不能当成它的首元素地址 需要用取地址符获得结构体变量的地址, 但是结构变量的地址就相当于指向结构体变量的第一个成员变量的地址如以下代码演示: typedef struct { char name[50]; char gender[10]; int age;

2015-10-20 19:51:19 569

空空如也

空空如也

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

TA关注的人

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