自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (7)
  • 收藏
  • 关注

原创 在 iOS 平台实现Ping 和 traceroute

ping 命令Ping是为了测试另一台主机是否可达,现在已经成为一种常用的网络状态检查工具。常见的ping命令:/**** 往目的追击发送固定包数 ****/ping -c 3 www.baidu.com // ping百度发送3个包/**** 设置两次发包之间的等待时间 ****/ping -i 5 www.baidu.com // 两包之间的时间间隔为5sping -i...

2019-05-07 17:12:04 1655

原创 创建一个 Framework 类型的静态库

一、开发静态库的同时进行调试主要讲述如何在开发静态库的同时进行调试。下面是图文教程:1. 创建静态库1) 在 Xcode 中,File -> New -> Project -> Framework & Library -> Cocoa Touch Framework 来创建项目。2) 修改类型3) 向项目中添加代码4) 在TVUUIKit.h 文件中添加公共代码头文件:#import <TVUUIK

2016-08-12 18:08:51 622

转载 利用CocoaPods管理第三方库

1. 安装CocoaPods代码复用是提高工程开发效率的重要方法,使用第三方库就是一种普遍的方式。在 iOS 开发中使用最广泛的管理第三方库的方案就是使用 CocoaPods。1)安装 Ruby 环境。CocoaPods 是使用 Ruby 实现的,可以通过 gem 命令来安装,Mac OS X 中一般自带 Ruby 环境。接下来将默认的 RubyGems 替换为淘宝的 RubyGems 镜像,速度要

2016-08-10 17:11:12 505

原创 在XCode中设置忽略signal SIGPIPE错误

一、在工作中遇到的问题当我利用XCode中的Instrument对我的app做自动化测试的时候,有时候会发生app的crash,这种crash的原因是signal SIGPIPE错误。这种错误就能够引起APP的Crash.二、探究问题的原因在app请求Service端视图建立TCP连接时,往往需要多次请求,中间会有失败的请求。所以服务器会经常去close一个连接,在TCP连接中,client会受到一

2016-06-22 18:17:07 3254

原创 对Git的总结

一、 对git的介绍Git 与常用的版本控制工具 CVS、Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。1.1、git是分布式而非集中式版本控制一个集中式的版本控制系统如上图所示。其特点就是有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。这种做法的好处是:每个

2016-06-22 17:56:09 4595

翻译 AVFoundation的介绍

一、简述AVFoundation是一个OC媒体数据的高级框架。AVFoundation的构建考虑到了目前的硬件环境和应用程序,其设计过程高度依赖多线程机制。充分利用了多核硬件的优势并大量使用block和GCD机制,将复杂的计算机进程放到了后台线程运行。会自动提供硬件加速操作,确保在大部分设备上应用程序能以最佳性能运行。该框架就是针对64位处理器设计的,可以发挥64位处理器的所有优势。二

2016-06-22 10:40:31 3165

原创 计算机中的位操作、补码、反码、原码

1、说明计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分。 在计算机中,数值一律用补码来表示和存储。原因在于,使用补码可以将符号位和数值域同一处理;同时,加法和减法也可以统一处理。此外补码和原码相互转换,其运算过程是相同的,不需要额外的硬件电路。基本原理: 1. 一个负数(或原码)与其补数(补码)相加,和为模。 2. 对一个整数的补码再求补码等于该整

2016-06-14 22:47:18 1272

原创 UITableView的分割线长短的控制

一、遇到问题当我利用第三方 FPPopoverController 来显示UITableView的时候,cell的分割线左边没有顶满,而右边却顶满了。这样显示很难看。我需要让其左右两边都是未顶满状态,距离是15像素。二、解决方法1、在UITableView的viewDidLoad方法中添加以下代码:// code1if ([self.tableView respondsToSelector:@se

2016-06-01 21:58:42 2453

翻译 理解和分析ios应用的Crash Log

常见的错误类型1).Bad Memory Accress[EXC_BAD_ACCESS // SIGSEGV // SIGBUS] 应用访问了非法内存。Exception Sub-code列出了被访问的资源的坏的内存地址。可以通过Instruments中的Zombies(僵尸对象分析器)来更好地分析此种错误。2).Abnormal Exit[EXC_CRASH // SIGABRT]

2016-05-31 18:44:39 1919

转载 真机调试总体概述

一、对苹果开发者中心的证书的说明真机调试的步骤: 1.注册成为苹果开发者(99$) 2.登陆苹果开发者主页 https://developer.apple.com/membercenter/index.action 3.点击 Certificates, Identifiers & Profiles4.点击Certificates 点击左上角的加号 选择iOS A

2016-05-25 16:54:12 424

原创 内存问题--全局变量被修改

一、遇到的问题1)情景说明: 我在一个类中定义了一个全局变量a,然后在类初始化的时候给该变量赋一个初始值a=10。该变量有被其他类外部引用,但是外部引用只是使用该值,并没有修改该值。然后在一个Timer中每秒打印这个变量1次。 2)看到的现象: 该变量a期初一直输出10,在突然的某一时刻,该值变成了 0二、我所想到的问题的原因我看到这种现象后,脑子不加思索的就想到以下两种原因: 1)肯定有人

2016-05-12 10:05:09 8856 3

原创 c和c++中的内存结构的

一、说明对每一门编程语言的内存结构的了解是非常重要的,因为在程序的运行过程中,往往会发生很多错误和你内存结构有关系。如果我们非常了解内存结构,那么就很快了解到错误的原因,快速定位问题并解决问题。二、具体的说明1>.c语言中的内存区域划分 栈内存:存放的一般都是基本类型(int,char,float,double等),由编译器自动分配和释放,不需要我们去手动管理。堆内存:存放的一般都是复杂类型(数组

2016-05-11 19:02:14 549

原创 文章标题

一、流状态(Stream States)1.常用的流状态 left与right是队列的,设置了此就取消了彼。dec、oct、hex三者也是相互独立的,设置了此就取消了彼。而fixed与scientific和一般显示方式三者也是独立的,不过它们的取消方式比较别扭,为out捆绑函数调用的方式:cout.unsetf(ios::scientific);2.有参数的三个常用的流状态width(int

2016-05-05 14:17:58 347

原创 常见的一些算法

1.判断一个数是否为素数(质数)/* 判断一个数是否为素数 method1 */bool judgePrime(int number){ for (int i = 2; i <= number - 1; i++) { if (number % i == 0) { return false; } } std::cou

2016-05-05 13:19:10 542

原创 Automating User Interface Testing with Instrument-利用Automation进行自动化测试

一、需求场景当我们做好一款app的时候,需要对其进行多次重复的功能测试时很有必要的。目前我做的项目AnyWhere就需要这么一个场景,需要不停的对其进行live和stop,检测crash的log.二、解决方法1、对于测试人员: 可以利用Appium,编写脚本进行自动化测试。当然还有其它的工具。这种测试不需要提供源码。 2.对于开发人员: 可以利用Instruments中的Automation框

2016-05-04 15:31:46 905

原创 按home键后,重新打开软件后2-3秒钟显示上次的页面

一、遇到的问题1.我遇到的问题是,我的app在后台有大概180秒的执行时间,当我点击home键,程序进入后台,当我再次进入app的时候有2-3秒显示上次点击home键时的页面,然后进入正常状态。 2.在cocoaChina上搜到一个帖子,楼主遇到的问题和我的应该是同一类型,下面是楼主提问的内容: 按home键后手势上划强行关闭程序,重新打开软件后2-3秒钟显示上次的页面 是这样的:我打开我

2016-04-28 09:51:23 5312

原创 IOS中引用外部字体样式

一、需求说明我们在开发中经常遇到需要设置一些字体样式,这些字体样式不是IOS自带的。是第三方的一个字体样式。二、解决方法首先得到 .ttf 字体样式文件(你可以从网络上下载,或者找UI设计师要),把该文件拖到系统中去。一般是resources(supporting files)文件夹。在app.plist中添加 Fonts provided by application ,然后在为其添加元素。如

2016-04-26 14:14:24 2478

原创 关于本地通遇到的问题及解决的方法

一、 关于本地通知本地通知,就是应用完成某个任务的时候发送一些提示。在APP打开的情况下,如果不对本地通知做任何界面显示的话,那么看不到界面有任何变化。如果用户点击Home以后,App在后台有3分钟的运行时间的话(即App在后台运行),那么本地通知就会以信息提示栏的形式显示在手机上面,和离线消息推送的效果一样。。如果用户点击Home以后,你的App处于挂起状态,那个发送了的本地通知并不是说永远不会执

2016-04-22 16:22:00 682

原创 ios后台长时间运行的选择策略及注意事项

概述本篇文章是介绍ios程序的后台长时间运行的策略的选择。如果想了解后台运行的基本原理,请查看上一篇博文http://blog.csdn.net/smiling8866/article/details/51024190一、音频播放当应用被设置为是一个音频播放的应用的时候,它就可以在后台持续运行。但是这种类型的应用存在一些限制: 1.audio session不能被限制 2.要另一个程序使用kAu

2016-04-05 13:41:15 1224

翻译 APP Run In Background(App 的后台运行)

一、 Background Execution(后台运行)当用户当前不使用你的app时,app此时就处于后台状态。对于大多数app来说,后台状态只是app到挂起状态的一个暂时状态,即它是一个过渡状态。让app处在挂起状态能节约手机电池的电量,也能让让出更多地系统资源给当前正在被使用的app.大多数的app可以很轻松的到挂起状态,但是也有一些特殊需求的app需要在后台持续运行。比如计步助手、音频播放a

2016-03-31 15:50:12 7412

原创 Mac OS X 的文件系统

一、对mac文件系统的整体介绍 OSX的文件系统是基于Unix文件系统,所有文件都挂载在根目录 / 下面。~ 是个人目录 我们在Mac桌面上看到的硬盘都挂在 /Volumes下 所有的驱动都在 /System/Library/Extensions 下二、对几个简单命令的理解$ open /Applications/QQ.app open:代开文件、目录和程序。其实它的真正作用是用于命令行模拟

2016-03-30 17:23:53 912

原创 计算应用占用CPU的百分比及CPU的利用率

一、说明我们在开发中,有可能会需要读取应用所占CPU的百分比以及CPU的使用率。本篇文章主要是介绍这两个利用率的概念以及如何拿到这两个利用率。cpu总量 = 本应用所占的空间 + 其它应用所占的空间 + 空闲的空间应用所占百分比:本应用的程序所在cpu的占有率 cpu的使用率:目前手机cpu的使用率 = 本应用使用率+其它应用使用率二、代码1.获取应用所占cpu的百分比: 导入以下库:#impo

2016-03-29 10:09:54 4221

原创 沙盒目录操作注意

一、函数的使用注意调用 - (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory;作用:1.判断一个文件是否存在 2.判断一个文件是否是目录以下是几种情况下的运行结果:1.path路径是一个目录并且存在: 函数返回值:YES isDirectory:无论其初始值是多少,始终返回YES2.p

2016-03-18 10:06:31 611

原创 IOS中的多线程

一、操作系统中的几个基本概念进程(process):指一个正在运行的可执行程序(应用程序),它可以包含多个线程。 线程(thread):指独立执行的代码片段,最小的执行单位。一个进程中所有的任务都在线程中执行。 任务(task):表示需要执行的工作。它是一个抽象的概念。线程的三种状态:运行(running)、就绪(ready)、阻塞(blocked)。线程持续在这三个状态之间切换,直到它最终退出

2016-03-15 14:08:29 485

原创 AVPlayer进行视频播放

一、说明AVPlayer是AVFoundation框架中的一个类,它比较接近于底层,可以利用该类进行自定义样式的视频播放。AVPlayer本身并不能显示视频,如果AVPlayer要显示视频,则它必须要创建一个播放器层AVPlayerLayer来用于展示视频,播放器层继承了CALayer,我们只需要把AVPlayerLayer添加到控制器view的layer中即可。我们在了解AVPlayer之前,首先

2016-03-15 10:00:37 48975

原创 IOS应用中的数据存储

介绍概述无论是IOS应用或者是其它的网页应用,都有数据存储。在IOS中,数据存储的方式主要有五种。这五种方式各自有着各自的特点,使用的时候我们需要分清具体情况然后选择最合适的存储方式。这五种方式分别是:XML属性列表(plist)Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3Core Data对于沙盒的介绍Sca

2016-03-10 21:54:02 542

转载 通过storyboard创建控制器

一、通过storyboard创建具体步骤: 1.先加载storbord文件UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];2.初始化storyboard中的控制器 初始化箭头所指的控制器UIViewController *vc = [storyboard instantiate

2016-03-09 10:38:28 2125

转载 UIApplication的解释及应用

一、UIApplication的介绍UIApplication是一个单例的类。一个程序中只有一个UIApplication对象。所以在程序中我们不可以自己创建UIApplication对象。我们利用UIApplication对象主要是设置一些全局信息。二、UIApplication的作用我们使用UIApplication对象,可以做应用级别的操作。比如: 1.设置应用图标右上方的提示数字,图标需要

2016-03-09 10:06:56 403

转载 linux中vim的使用

vim分为三种模式:一般模式、编辑模式、命令模式。 一般模式:在这个模式下,你可以做的操作有,上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行。 编辑模式:从一般模式进入编辑模式,只需你按一个键即可(i,I,a,A,o,O,r,R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT或REPLACE”的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。 命令模式

2016-03-07 15:00:19 611

转载 iOS-触摸事件

ios中的事件概述 在ios中会有各种各样的事件,它们可以分为3类:触摸事件、加速计事件、远程控制事件。响应者对象 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”, UIApplication、UIViewController、UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件。对

2016-03-07 14:29:54 374

转载 屏幕适配之-Autoresizing

1.对autoresizing的简单介绍autoresizing是对组件进行定位的一种技术。它不能和autolayout进行同时使用。并且在使用autoresizing的时候,只能控制父子视图之间的关系。2.具体用法第一种是在IB中,在Size inspector中进行设置;第二种方式是用代码的方法。下面是利用代码方法的例子:#import "ViewController.h"@interface

2016-03-02 18:25:22 382

原创 简单排序算法

package com.shine.sort;/** * 排序算法    * @说明: *     排序算法分为三种:插入排序、交换排序、选择排序    *     1.插入排序:直接插入排序、折半插入排序、希尔排序   *     2.交换排序:冒泡排序、快速排序      *     3.选择排序: 直接选择排序、堆排序   */public class M

2016-02-02 17:35:30 475

翻译 Security

一、介绍数据安全是苹果系统的核心。你可以利用ios里面的安全函数存储收据到或者文件到不同的存储空间中去。 Apple利用钥匙串去访问操作系统中的数据。钥匙串访问是建立在Common Data Security Architecture(公共数据安全体系简称CDSA)之上的。钥匙串访问可以管理不同的钥匙串,每一个钥匙串本身可以包含安全的数据,包括密码等。 而mac上的钥匙串和ios上的钥匙串有一些

2016-01-25 18:17:06 775

翻译 Creating Concurrency with Threads

把任务放到线程中执行的时候,执行的那段代码要放在autoreleasepool中。

2016-01-25 11:22:21 332

翻译 Creating Timers

一、说明: 如题,我们本篇讲的是创建一个定时器。定时器它是一个对象,在指定的时间间隔触发一个事件。定时器必须在一个运行循环中。定义一个定时器对象创建一个不定期的定时器,这个定时器不执行任何操作,但是它是可用的,可以在任何你需要启动它的时候变得可用。一个定时的计时器,它是被添加到运行循环中的。 创建定时器的方式有很多,其中一个比较方便的方法是: + (NSTimer *)scheduledTim

2016-01-25 10:30:26 464

翻译 Concurrency5

一、Running Tasks Synchronously with Operations1.说明 当你想要运行一系列的同步任务的时候,你可以创建operations来启动它。 eg: 看如下代码#import "ViewController.h"@interface ViewController ()@property (nonatomic, strong) NSInvocationOper

2016-01-21 18:38:32 474

翻译 Concurrency4

一、GCD中的延时操作1.关于延迟操作的说明 我们在程序中经常用到延迟一段时间后执行某段代码,通常情况下我们利用的是NSObject中的performSelector:withObject:afterDelay方法。 eg: - (void)printString:(NSString *)paramString{ NSLog(@"%@",paramString);} - (void)

2016-01-20 17:41:26 819

翻译 Concurrency3

一、 UI和GCD的联系有两种方式在主线程上创建任务,两种方式都是异步的,这可以保证你的app运行流畅,无论是有些任务是否被卡住: dispatch_async 函数:Executes a block object on a dispatch queue. dispatch_async_f 函数: Executes a C function on a dispatch queue. 注意:d

2016-01-15 18:44:36 404

翻译 Concurrency之Block的定义和Block中对象变量的访问

一、Block的定义// 利用block做两个数个数相减 (有返回值,有两个参数)NSInteger (^subtract)(NSInteger,NSInteger) = ^(NSInteger paramValue,NSInteger paramFrom){ return paramFrom - paramValue;};// 将数字转化成字符串 (有返回值,有一个参数)NSStri

2016-01-15 15:06:50 375

翻译 Concurrency之Introduce

并发也就是为了达到在同一时间点有两个任务在执行。现在的操作系统都有并发能力,即使它只有一个cup。cup通过给每个任务一个确定的轮轴时间片来实现这种能力。 然而,现在的科技能让我们有两个cup,这也就意味着我们能真正做到两个任务同时执行。简单来说,操作系统就会把任务分给cup,直到它处理完成。 大中央调度(Grand Central Dispatch),简称GCD,它是使用C语言实现的,里面有很

2016-01-15 14:31:44 367

git操作命令

git操作总结。掌握这些,你就能玩转git

2016-06-22

ios后台运行

ios后台长时间运行,退出后播放一个音频文件。

2016-04-05

Iphone获取应用所占cpu的使用率以及iphone手机cpu的使用率

ios获取cpu使用率,包括应用级别和手机级别。

2016-03-29

IOS7 Programming Cookbook

IOS7 Programming Cookbook

2015-12-18

使用UIImagePickerController时3DTouch引起的Crash问题的解决

使用UIImagePickerController时3DTouch引起的Crash问题的解决

2015-12-18

类似于IPad上的菜单弹出控制器

类似于Ipad上的菜单组件,用法非常简单。

2015-12-04

IOS集成支付宝支付并附有博客教程地址

有了这个demo,往项目中继承支付宝支付很容易。项目中附有博客教程地址。

2015-06-13

空空如也

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

TA关注的人

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