自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zwcshy的专栏

那些年,见证我们的成长历程。

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

原创 2.键盘的显示/隐藏

应用中,跟用户交互功能必不可少!关于键盘的显示/隐藏 中,就隐藏着许多的知识。那我们就来窥看一角。我们常常抱怨这么几种情况:1.键盘显示时,遮盖了原来的输入框或者不该遮盖的内容。如何让其他控件不被键盘遮盖?2.键盘显示的动画与控件的位置移动不一致,导致动画不连贯。3.相反的,键盘隐藏时,其他控件该如何移动到原来的位置?等等。功能:控件根据键盘的显示/隐藏进行重新

2015-07-28 16:01:53 497

原创 1.IOS TableView滑动显示多个按钮

** *  tableView:editActionsForRowAtIndexPath:     // 设置滑动删除时显示多个按钮 *  UITableViewRowAction                        // 通过此类创建按钮 *  1. 我们在使用一些应用的时候,在滑动一些联系人的某一行的时候,会出现删除、置顶、更多等等的按钮,在iOS8之前,我们

2015-07-28 15:57:31 770

转载 17、Objective-C在ARC下结合GCD的单例模式和宏模版

单例模式在iOS开发过程中经常用到,苹果提供过objective c单例的比较官方的写法:[cpp] view plaincopystatic MyGizmoClass *sharedGizmoManager = nil;     + (MyGizmoClass*)sharedManager  {      @synchron

2015-05-02 11:18:49 478

转载 16、使用Xcode和Instruments调试解决iOS内存泄露

虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在。所以了解原理很重要。这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露,以及NSZombieEnabled设置的使用。本文假设你已经比较熟悉Obj-C的内存管理机制。实验的开发环境:XCode 4.5.21、运行Demo。先下载一个实现准

2015-05-02 11:15:04 333

转载 15、 老项目在Xcode6调试运行时报错的问题(App installation failed).

最近在使用Xcode6调试之前的老项目时(环境Xcode6.01,真机iphone5,iOS8.0,),每次运行工程,第一次总会报错,只能运行第二次,报错截图如下:试着clean,也按照网上说的检查过项目内是否有Resoures文件夹,依然不能解决.后来发现Xcode6新建的工程项目没有出现的问题.怎么解决老工程项目的问题呢,毕竟每次都需要点运行2次才能调试挺闹心的.

2015-04-20 21:18:09 435

转载 14、 iOS "The sandbox is not in sync with the Podfile.lock"解决方案

更新Cocoapod之后出现问题:[plain] view plaincopydiff: /../Podfile.lock: No such file or directory  diff: Manifest.lock: No such file or directory   error: The sandbox is not in 

2015-04-11 22:53:23 667

转载 13、Notification与多线程

前几天与同事讨论到Notification在多线程下的转发问题,所以就此整理一下。先来看看官方的文档,是这样写的:In a multithreaded application, notifications are always delivered in the thread in which the notification was posted, which may not be

2015-03-31 21:14:24 531

转载 12、@synthesize of ‘weak’ property is only allowed in ARC or GC mode

现在的项目是手动内存管理,所以在引入第三方资源库时候,很多资源库更新以后都开始使用arc进行编码,这样就导致两种代码风格不一致,有的时候可能开发者也没有注意到这些问题,反正用的时候也没有报错,就直接使用了;但是有的时候,因为arc编码中用到了新的属性修饰符,例如weak,这时候在手动管理内存的代码中就不能编译通过,报错的内容就是:@synthesize of ‘weak’ property is

2015-03-28 09:12:32 503

原创 11、缓存在AFNetworking中是如何工作的?AFImageCache和NSUrlCache给你答案

如果你是一名使用Mattt Thompson网络框架AFNetworking的iOS开发者(如果你不是,那还等什么呢?),也许你对这个框架中的缓存机制很好奇或者疑惑,并想学习如何在自己的app中充分利用这种机制。AFNetworking实际上使用了两个独立的缓存机制:AFImagecache:一个提供图片内存缓存的类,继承自NSCache。NSURLCache:NSURLCon

2015-03-27 01:06:28 446

转载 10、@autoreleasepool-内存的分配与释放

开发过iOS、Mac的朋友应该对“@autoreleasepool”不陌生。只要在Xcode里创建一个工程,就能看到下面这样的代码://iOS programint main(int argc, char * argv[]) {    @autoreleasepool {                return UIApplicationMain(argc, argv, 

2015-03-27 01:00:08 447

原创 9、iOS并发编程笔记

线程使用Instruments的CPU strategy view查看代码如何在多核CPU中执行。创建线程可以使用POSIX 线程API,或者NSThread(封装POSIX 线程API)。下面是并发4个线程在一百万个数字中找最小值和最大值的pthread例子:#import struct threadInfo { uint32_t * inputValues; si

2015-03-27 00:39:39 397

转载 8、CFRunLoopMode

简单的说run loop是事件驱动的一个大循环,如下代码所示int main(int argc, char * argv[]) { //程序一直运行状态 while (AppIsRunning) { //睡眠状态,等待唤醒事件 id whoWakesMe = SleepForWakingUp(); //得到唤醒

2015-03-27 00:37:25 511

转载 7、Enum-枚举的正确使用

Enum,也就是枚举,从C语言开始就有了,C++、Java、Objective-C、Swift这些语言,当然都有对应的枚举类型,功能可能有多有少,但是最核心的还是一个—-规范的定义代码中的状态、选项等“常量”。Item 5 - Use Enumerations for States, Options, and Status Codes本节的内容就是如何正确的

2015-03-27 00:14:14 609

转载 6、NSNotificationCenter使用

一个NSNotificationCenter对象(通知中心)提供了在程序中广播消息的机制,它实质上就是一个通知分发表。这个分发表负责维护为各个通知注册的观察者,并在通知到达时,去查找相应的观察者,将通知转发给他们进行处理。本文主要了整理了一下NSNotificationCenter的使用及需要注意的一些问题,并提出了一些未解决的问题,希望能在此得到解答。获取通知中心每个程序

2015-03-27 00:02:12 418

原创 1、UI基础

1、UI开发就是放置对象,而这些对象就是控件控件、组件2、开发非UI功能,使用框架3、开发应用的第一根步骤-> 界面上看需要什么东西-> 打开Xcode,新建项目shift + command + n新建一个项目4、OC中我们的类名一般有前缀NSStringNSArray在其他的开发语言中为了避免名字的冲突,常常提

2015-03-01 22:51:49 394

转载 5、Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.

Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.分类: cannot be opened because the project file cannot be parsed. IDE2012-12-19 11:14 387人阅读 评论(0) 收藏举报svn更新代码后,打开

2014-12-27 22:29:30 380

转载 4、 xcode在Archive生成安装包时遇到ld: library not found for -lPods

这个问题很容困扰,一般有以下几个方案进入target的 Build Phases- Link binary Library,找到libPods.a,如果是红色的,删除,即可其他解决方案Build Setting > Other Linker Flag:Try to change wherever $(TARGET_BUILD_DIR) to $(BUILT_PRODUCTS

2014-12-27 22:28:24 744

转载 Android 集成支付宝SDK实现快捷支付--详解

转载请标明出处:http://blog.csdn.net/u014084504/article/details/42104035公司最近要在项目中加入购物车功能,提到购物车那就自然少不了支付宝的身影啦。下面我们就来探讨一下如何在Android快速集成支付宝SDK。支付宝的SDK目前已经更新到了2.0版本,这次的SDK相比上个版本的SDK来说,代码更佳简洁了,集成起来更加的方便快捷。摘要

2014-12-24 18:35:57 1220 1

转载 3、iOS duplicate symbols for architecture i386

Xcode添加静态库以及编译选项配置常见问题一,Xcode编译出现Link错误,出现"duplicate symbols for architecture i386 clang"提示.问题:链接时,项目有重名文件.解决:根据错误提示,做如下检查:1.Taraget->Build Settings->Link Binary With Libraries检查是否有重复l

2014-12-24 15:34:35 371

转载 2、fatal error: malformed or corrupted AST file: 'Unable to load module Darwin.pcm 问题解决

xcode5 编译工程,偶然碰到了下面的问题:[html] view plaincopyfatal error: malformed or corrupted AST file: 'Unable to load module "/Users/gapple/Library/Developer/Xcode/DerivedData/ModuleCache/PNBJ8YUNV3

2014-12-18 20:16:17 390

原创 23、内存管理完善

一、基本原理(一)为什么要进行内存管理。由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等。管理范围:任何继承NSObject的对象,对其他的基本数据类型无效。本质原因是因为对象和其他数据类型在系统中的存储空间不一样,其它局部变量主要存放于

2014-12-15 21:07:10 417

转载 1、CocoaPods详解之----使用篇

一、什么是CocoaPods1、为什么需要CocoaPods在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson、AFNetworking、Reachability等等。使用这些库的时候通常需要:下载开源库的源代码并引入工程向工程中添加开源库使用到的framework解决开源库和开源库以及开源库和工程之间的依赖关系、检查重复添加的framework等

2014-12-13 22:43:20 355

转载 22、复合方法

复合遵循一个合成复用原则,又称为组合或者聚合复用原则。该原则的内容是:尽量使用对象组合,而不是继承来达到复用的目的。用聚合可以使系统更加灵活,类与类之间的耦合度降低。在objective-c中,复合是指将多个组件组合在一起,配合使用,从而得到一个完整的作品。严格的说,只有对象之间的组合才是复合。类中的基本数据和结构型对象不算复合。  继承和复合,是类与类之间两种重要的关系。接下来,我们就借用书

2014-12-05 11:38:33 432

转载 21、objective-c数组的四种遍历方法总结

objective-c 语言 数组遍历的4种方式:1、普通for循环;2、快速for循环;3、特性block方法;4、枚举方法。 Blog类:#import "Blog.h"@implementation Blog +(Blog *)blog{ Blog * blog = [[Blog alloc] init]; return blog;} -(Blog *

2014-12-05 11:23:49 482

转载 20、Objective C中数组排序几种情况的总结

总结OC中数组排序3种方法:sortedArrayUsingSelector:;sortedArrayUsingComparator:;sortedArrayUsingDescriptors:                 大体上,OC中常用的数组排序有以下几种方法:sortedArrayUsingSelector:;sortedArrayUsingComparator:;sortedA

2014-12-05 11:17:47 301

原创 19、iOS下单例模式实现

​单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这里主要介绍下在arc下,利用gcd实现单例。第一步:声明一个静态实例static SoundTool *_instance;第二步:重写初始化方法+ (id)allocWithZone:(struct _NSZone *)zone在对象初始化分配内存的时候都会调用这个方法,重写该方

2014-12-05 11:15:01 378

原创 18、黑马程序员-C语言常用算法

1、C语言选择排序算法及代码基本思想及举例说明选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置;然后,选出第二小的数,放在第二个位置;以此类推,直到所有的数从小到大排序。在实现上,我们通常是先确定第i小的数所在的位置,然后,将其与第i个数进行交换。下面,以对 3  2  4  1 进行选择排序说明排序过程,使用min_index 记录当前最小的数所在的位置。

2014-12-02 14:27:27 650

原创 17、黑马程序员-C语言static和extern

一、在Java中,全局变量的定义没有严格的位置规定全局变量可以定义在类的最前面,也可以定义在类的最尾端,也就说一个方法可以访问在它之后定义的变量。可以看到,第4行定义的test方法可以访问第8行定义的变量a,这是完全没有问题的。二、在C语言中,全局变量定义的位置是有限制的默认情况下,一个函数不可以访问在它后面定义的全局变量在第4行定义的main函数中尝试访问第9

2014-12-02 13:51:02 399

原创 16、黑马程序员-C语言typedef关键字

一、typedef作用简介* 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。#include typedef int Integer;typedef unsigned int UInterger;typedef float Float;int main(int argc, const char * argv[]){ Integer i = -1

2014-12-02 13:43:10 454

原创 15、黑马程序员-C语言预处理指令

一、什么是预处理指令1、C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释,产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译2、为了区分预处理指令和一般的C语句,所有预处理指令都以符号"#"开头,并且结尾不用分号3、预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾。习惯上我们尽可能将预处理指令写在源程序开头,这种情况下,它的作用

2014-12-02 12:50:42 365

原创 14、黑马程序员-C语言枚举

一、枚举类型的定义和枚举变量的说明1) 枚举的定义枚举类型定义的一般形式为:enum  枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如,该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。2) 枚举变量的说明如同结构和联合一样,枚举变量也可用不同的方式说明,即先

2014-12-02 11:01:10 466

原创 13、黑马程序员-C语言结构体

一、什么是结构体对于数组中,每个元素都是相同的,如果我们想使每个元素不同的话,我们可以考虑使用结构体。结构体可以由多种不同类型的数据类型组成的新的数据类型二、结构体的定义格式:struct 结构体名 {    数据类型 变量1;    数据类型 变量2;    数据类型 变量3;    ... ...}例如:struct Student

2014-12-02 10:49:48 333

原创 12、黑马程序员-C语言指针

一、什么是指针?指针是用来存放变量地址的。通过指针可以间接操纵变量。二、指针的定义变量类型 *变量名;如:int *p;定义了一个int类型的指针p。注意:任何类型的指针都占据8个字节的存储空间三、指针的初始化1、先定义,后初始化int a = 10; // 定义变量aintint *p; // 定义int型指针pp = &a; // 给指针p赋值,存放的是

2014-12-02 10:34:57 390

原创 11、黑马程序员-C语言字符串

1、字符数组的定义形式与前面介绍的数值数组相同。例如:char c[10];由于字符型和整型通用,也可以定义为int c[10],但这时每个数组元素占2个字节的内存单元。字符数组也可以是二维或多维数组。例如:char c[5][10];即为二维字符数组。2、字符数组的初始化字符数组也允许在定义时作初始化赋值。例如:char c[10]={'c', '

2014-12-01 21:53:40 435

原创 10、黑马程序员-C语言数组

C语言数组一、数组的概念用来存储一组数据的构造数据类型特点:只能存放一种类型的数据,如全部是int型或者全部是char型,数组里的数据成为元素。二、数组的定义格式: 类型 数组名[元素个数];举例:存储5个人的年龄int agrs[5]; //在内存中开辟4x5=20个字节的存储空间可以在定义数组的同时对数组进行初始化:int ages[

2014-12-01 21:39:37 467

原创 9、黑马程序员-C语言inclue和多文件开发

一、include1> 作用:拷贝右边文件的所有内容到#include所在的位置2> 自定义的文件用"",系统自带的文件用3> #include 的目的:拷贝printf函数的声明#include是一个系统头文件。#include相当于把abc.txt文件中的所用内容以纯文本的方式拷贝到当前位置。#include int main(){ pr

2014-12-01 21:23:04 597

原创 8、黑马程序员-C语言函数

一、基本概念1>什么是函数任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的。2>函数名一般来说,我们会将不同的功能交给不同的函数去实现。为了方便调用和区分这些函数,我们需要为每一个函数都起一个唯一的名称,函数的命名必须按照标识符命名规则。利用函数名就可以调用到

2014-12-01 21:07:37 661

原创 7、黑马程序员-C语言流程控制

C语言流程控制一、流程控制结构(1)顺序结构:按书写顺序执行每一条语句。(2)选择结构:对给定的条件进行判断,根据判断结果决定执行哪一段代码。(3)循环结构:在给定条件成立的情况下,反复执行某一段代码。二、选择结构-if(一)if简单使用1) 第一种结构:a) 如果条件为真,就执行后面的语句,否则不执行。if(条件){

2014-12-01 20:52:12 391

原创 6、黑马程序员-C语言运算符

C语言运算符一、算术运算C语言一共有34种运算符,包括常见的加减乘除运算。①. 加法:+ 还可以表示正号②. 减法:- 还可以表示负号③. 乘法:* 非数学意义上的X④. 除法:/  注意1/2的值为0而非0.5⑤. 取余(模运算):两个整数相除之后的余数(注意两边都必须是整数,带符号只和左值有关)注意点:①. Int a=1

2014-12-01 20:38:38 395

原创 5、黑马程序员-C语言的scanf函数

一、变量的内存分析(一)字节与地址①. 内存以字节为单位 ,每个字节都有自己的内存地址,根据地址就可以找到该字节。整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间就相当于是每个字节,地址就是房号,根据房号可以找到房间(根据地址也可以找到内存中的字节)。相邻房间的房号是连续的,相邻字节的地址也是连续的。计算机中通常以十六进制表示地址。②. 不同类型占用的字节是不一样的,数据越

2014-12-01 20:28:56 382

空空如也

空空如也

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

TA关注的人

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