自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术之窗

迷茫不是你堕落的理由!-心中充满阳光。

  • 博客(258)
  • 资源 (4)
  • 收藏
  • 关注

原创 CleanMyMac X 4.13.4 Mac中文版

体验一系列巧妙的新功能,CleanMyMac可让您安全智能地扫描和清理整个系统,删除大量未使用的文件,缩小iPhoto图库的大小,卸载不需要的应用程序或修复不正常工作的应用程序,管理所有您可以从一个地方进行扩展,还可以做更多的事情 – 全部来自一个新设计和精美简洁的界面。今天,给大家来分享的是Mac下一款强大、实用的系统清理软件——CleanMyMac,它可以帮助您快速清理系统垃圾,清理Photos重复照片,卸载软件等等。– 清除以前删除的应用程序和小部件留下的垃圾。– 易于使用,用户友好的界面。

2023-06-27 17:05:26 209

原创 多线程-10、dispatch同步

GCD提供两种方式支持dispatch队列同步,即dispatch组和信号量。一、dispatch组(dispatch group)1. 创建dispatch组dispatch_group_t group = dispatch_group_create(); 2. 启动dispatch队列中的block关联到group中dispatch_group_asyn

2017-01-17 16:14:54 576

原创 多线程-9、dispatch源

dispatch源(dispatch source)和RunLoop源概念上有些类似的地方,而且使用起来更简单。要很好地理解dispatch源,其实把它看成一种特别的生产消费模式。dispatch源好比生产的数据,当有新数据时,会自动在dispatch指定的队列(即消费队列)上运行相应地block,生产和消费同步是dispatch源会自动管理的。dispatch源的使用基本为以下步骤:

2017-01-17 15:29:12 386

原创 多线程-8、dispatch队列

GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致。 dispatch队列的生成可以有这几种方式:1. dispatch_queue_t queue = disp

2017-01-17 14:47:45 488

原创 多线程-7、dispatch对象

谈起iOS的dispatch(正式称谓是Grand Central Dispatch或GCD),不得不说这又是iOS(包括MacOSX)平台的创新,优缺点这里不讨论,只有当你使用时才能真正体会到。我们说dispatch函数的主要目的是实现多任务并发代码,那么要理解dispatch函数,先来了解dispatch对象的定义。 dispatch对象类型的部分定义,主要使用C语言的宏定义:

2017-01-17 14:32:53 327

翻译 有关UIViewController与UIVie

UIViewController分为下面三种情形创建 (依次调用的方法 顺序如下)一.StoryBoard:     1.initWithCoder   ;  2.awakeFromNib   ;  3.loadView   ;  4.viewDidLoad 二.Xib:                  1.init  ;  2.initWithNibName  ;  3.loadV

2017-01-17 14:17:53 300

原创 多线程-6、NSOperation

iOS平台提供更高级的并发(异步)调用接口,让你可以集中精力去设计需完成的任务代码,避免去写与程序逻辑无关的线程生成、运行等管理代码。当然实质上是这些接口隐含生成线程和管理线程的运行,从而更加简洁地实现多线程。下面先来研究NSOperation和NSOperationQueue类的使用。NSOperation实质是封装了需要并发运行的代码,一些主要接口和NSThread基本相同,可以看做没

2017-01-17 11:47:02 234

原创 多线程-5、如何让NSURLConnection在子线程中运行

可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行。前面提到可以将NSTimer手动加入NSRunLoop,Cocoa库也为其它一些类提供了可以手动加入NSRunLoop的方法,这些类有NSPort、NSStream、NSURLConnection、NSNetServices,方

2017-01-17 11:29:18 317

原创 多线程-4、NSTimer

理解run loop后,才能彻底理解NSTimer的实现原理,也就是说NSTimer实际上依赖run loop实现的。先看看NSTimer的两个常用方法:+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userI

2017-01-17 10:53:22 269

原创 多线程-2、锁

谈到线程同步,一般指如何对线程间共享数据的同步读写,如何避免混乱的读写结果。一个基本的解决办法就是使用锁(LOCK)。iOS提供多种同步锁的类和方法,这里介绍下基本用法。 1. NSLock:最基本的同步锁,使用lock来获得锁,unlock释放锁。如果其它线程已经使用lock,这时lock方法会阻塞当前线程,直到其它线程调用unlock释放锁为止。NSLock锁一般用于简

2017-01-13 17:45:22 243

原创 多线程-1、NSThread

对于多线程的开发,iOS系统提供了多种不同的接口,先谈谈iOS多线程最基础方面的使用。产生线程的方式姑且分两类,一类是显式调用,另一类是隐式调用。一、显示调用的类为NSThread。一般构造NSThread的线程对象可通过两种方式:1. 初始化线程主方法:[NSThread detachNewThreadSelector:@selector(run:) toTarget:t

2017-01-13 17:04:58 212

转载 如何删除xcode项目中不再使用的图片资源

由于随着项目不但的版本迭代开发,资源也不断的替换,如果没有养成一个好的使用习惯,时间久了,自然就产生了好多的无用的图片资源,下面就两种方法帮你定位到无用的图片1. 利用工具    下载地址  http://jeffhodnett.github.io/Unused/   运行效果如下 2. 通过终端 执行 shell 命令a. 第一步建立.sh 文件  如 unu

2015-12-29 11:05:08 433

翻译 苹果IOS开发者账号总结

苹果IOS开发者账号总结详细地址:https://developer.apple.com/programs/which-program/ 个人账号(Individual):费用99美金一年, 该账号在App Store销售者只能显示个人的ID,比如zhitian zhang,单人使用。个人账号只能有一个开发者。100个苹果的iOS设备UDID测试。 公司团队账号 (Co

2015-10-19 18:02:47 433

翻译 详解开源项目:MMPopupView(弹出框组件)

开源项目:MMPopupView前言弹出框组件应该是绝大多数应用都少不了的(只有极少数精心设计的APP会用不到) 当然我们的APP也不例外 之前我们APP的弹出框组件是我用pop写的 可是后来发现与系统原生动画有些冲突(pop内部用到了CATransaction 导致跟系统动画同时发生时会有问题) 所以上周花了大半天时间重写了一下MMPopupView这个组件因

2015-09-29 14:28:51 2466

翻译 iOS开发UI篇—程序启动原理和UIApplication

iOS开发UI篇—程序启动原理和UIApplication 一、UIApplication1.简单介绍(1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序。(2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示。(3)通过[UIA

2015-09-28 16:30:18 279

翻译 iOS开发UI篇—常见的项目文件介绍

iOS开发UI篇—常见的项目文件介绍一、项目文件结构示意图 二、文件介绍1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件2.frameworks文件夹主要用来放依赖的框架3.test文件夹是用来做单元测试的4.常用的文件夹(项目名称文件夹)(1)XXXinfo.plist文件(在该项目中

2015-09-28 16:28:12 338

原创 12个免费学习编程的网站

1、CodeAcademy2、Coursera3、edX4、Udemy5、aGupieWare6、GitHub7、MIT Open Courseware8、Hack.pledge9、Code Avengers10、Khan Academy11、Free Food Camp12、HTML5 Rocks

2015-09-11 16:54:45 1339

翻译 iOS小技巧--用runtime 解决UIButton 重复点击问题

iOS小技巧–用runtime 解决UIButton 重复点击问题什么是这个问题我们的按钮是点击一次响应一次, 即使频繁的点击也不会出问题, 可是某些场景下还偏偏就是会出问题. 通常是如何解决我们通常会在按钮点击的时候设置这个按钮不可点击. 等待0.xS的延时后,在设置回来; 或者在操作结束的时候设置可以点击.- (IBAction)clickBtn1:(UIb

2015-09-11 16:37:51 633

翻译 iOS开发(Objective-C)常用库索引

code4app.com 这网站不错,收集各种 iOS App 开发可以用到的代码示例 cocoacontrols.com/ 英文版本的lib收集 objclibs.com/ 精品lib的收集网站 http://www.ityran.com/forum-61-1.html 泰然代码仓库---------------------- emoji ----------------

2015-08-27 15:49:36 890

翻译 彩色TabBar切换动画实现

无意间看到一个彩色TabBar切换的设计图,感觉很不错,有空就把他实现了。 环境信息 Mac OS X 10.10.4 Xcode 6.4 iOS 8.4 效果图:源码下载地址: https://github.com/saitjr/TColorfulTabBar.git一、实现分析看到这个彩色切换效果的时候,我第一个反应就是在TabBar上有一个彩色的View,然后

2015-08-12 16:33:58 495

翻译 CoreMotion框架中加速度计使用简明教程

前言之前有人通过iPhone的加速度计做出一个手机防盗APP,而且正是通过这个防盗APP拿到天使投资。从此以后华丽转身,公司发展的有声有色。虽然这个项目最后不怎么样,但是,确实是一个不错的想法。也许你不知道,每一台iPhone都内置的有加速度计。这样当用户操作手机的的时候,比如旋转手机,内置的加速度计就会做出反应。在iOS4之前加速度计是由UIAccelerometer来采

2015-08-12 16:32:33 339

翻译 一次对MKMapView的性能优化

前言最近做的项目主要是LBS这块 主打成员定位功能 我们的UI设计是这样的乍一看上去是挺好挺美观的 不同的人会显示不同的头像 可是当人扎堆的时候 问题就来了当人多的时候(例如上图所示) 地图滑动起来就能感觉到明显顿卡 那种不流畅感能折磨死人 所以 自然我们要解决这个问题(等等 先不要吐槽为什么不用地图聚合 因为这已经是地图放到最大了 聚合不适合这次的问题讨论

2015-08-12 16:29:59 396

翻译 NSRunLoop 概述和原理

1.什么是NSRunLoop?我们会经常看到这样的代码:- (IBAction)start:(id)sender{pageStillLoading = YES;[NSThread detachNewThreadSelector:@selector(loadPageInBackground:)toTarget:self withObject:nil];

2015-08-10 17:32:06 311

翻译 多个UIImage合并成一个UIImage

介绍了如何将图片保存到系统相册,也可以将照片保存到自己的相簿。里面还介绍了一个第三方ALAssetsLibrary+CustomPhotoAlbum保存照片的方法。本篇文章将会介绍如何将多个UIImage合并成一个UIImage。听起来似乎有点晕晕乎乎的,这个可以合并吗?答案是肯定的。我们拿两个UIImage来举例。创建两个UIImageUIImage *image

2015-08-07 16:20:34 411

翻译 iOS开发之保存照片到自己创建的相簿

我们讲到了如何保持照片系统相册。还有其他保存的方法吗?保存照片还可以用ALAssetsLibrary,ALAssetsLibrary提供了我们对iOS设备中的相片、视频的访问,是连接应用程序和相册之间访问的一个桥梁。接下来,我们来详细讲解一下关于系统相册权限获取、保存照片、创建自己的相簿等等功能。创建自己的相簿这也是一种比较创建的作法,创建自己的相簿,然

2015-08-07 16:18:13 358

翻译 iOS开发之保存照片到系统相册(Photo Album)

保存照片到系统相册这个功能很多社交类的APP都有的,今天我们简单讲解一下,如何将图片保存到系统相册(Photo Album)。创建UIImageView创建UIImageView是为了将照片展示出来,我们是要把UIImage保存到系统相册(Photo Album):#define SCREEN [UIScreen mainScreen].bounds.sizeself.

2015-08-07 16:14:40 371

翻译 实现placeholder属性的UITextView

GGPlaceholderTextView简介GGPlaceholderTextView也是对text操作,具体逻辑如下:继承UITextView,并设置placeholder属性注册开始编辑和结束编辑通知,然后对text做相应的操作通过UIApplicationWillTerminateNotification通知,在APP退出的时候移除通知。我把GGPlac

2015-08-07 16:10:53 352

翻译 UITextView实现placeholder的猥琐做法

我们都知道iOS开发中的UITextField有个placeholder属性,placeholder可以很方便引导用户输入。但是UITextView却没有placeholder属性猥琐法分析如何让UITextView也有placeholder功能呢?今天给各位分享一个比较猥琐的做法。思路大概是这样的:把UITextView的text当placeholder使用。

2015-08-07 16:08:20 322

翻译 使用UIDataDetectorTypes自动检测电话、网址和邮箱

上一篇文章UIWebView用法详解及代码分享里面提到:webView.dataDetectorTypes = UIDataDetectorTypePhoneNumber;//自动检测网页上的电话号码,单击可以拨打接下来我们来简单讲一下,使用UIDataDetectorTypes自动检测电话、网址和邮箱。我们先来看看UIDataDetectorTypes有哪些枚举值。UIDa

2015-08-05 17:25:14 474

翻译 UIWebView用法详解及代码分享

今天我们来详细UIWebView用法。UIWebView是iOS内置的浏览器控件,可以浏览网页、打开文档等 能够加载html/htm、pdf、docx、txt等格式的文件.创建UIWebView首先创建UIWebView,这个不难,设置frame,然后添加到self.view上即可:UIWebView *webView = [[UIWebView alloc] init

2015-08-05 17:20:34 522

翻译 通过URL Scheme传递参数

通过注册的URL Scheme向目标APP传递参数通过URL Scheme启动APP很简单就可以做到,但有时候我们想在启动APP的时候传递一些参数,这个时候我们就可以通过URL Scheme自定义URL来传递参数了。昨天我们在AppDelegate调用了UIApplicationDelegate的代理方法:- (BOOL)application:(UIApplication *

2015-08-05 16:57:38 2755

翻译 Xcode6.4注册URL Scheme步骤详解

URL Scheme的作用我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的。但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便app之间互相调用而设计的。我们可以通过系统的OpenURL来打开该app,并可以传递一些参数。例如:你在Safari里输入www.alipay.com,就可以直接打开你的支付宝app,

2015-08-05 15:27:59 491

翻译 从app跳到设置界面

从app跳到设置界面直接上代码: NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL

2015-08-05 15:18:25 306

翻译 NSFileManager文件操作的十个小功能

NSFileManager是一个单列类,也是一个文件管理器。可以通过NSFileManager创建文件夹、创建文件、写文件、读文件内容等等基本功能。下面将介绍NSFileManager文件操作的十个小功能。我们在Documents里面进行举例,首先是获取Documents的路径。这个在iOS开发之沙盒机制(SandBox)已经详细讲解过了。获取Documents路径方法如下:- (NS

2015-08-05 14:39:27 193

翻译 如何查看真机的沙盒(图文教程)

查看真机沙盒教程打开Devices在xcode的上部导航栏里,选择window -> Devices找到目标APP我们拿iOSStrongDemo举例。界面如下图所示:浏览沙盒目录结构双击iOSStrongDemo点击Show Container设置图标单击之后,如图所示:这样我们只能看到沙盒的

2015-08-05 11:15:44 539

翻译 iOS开发之获取沙盒路径

获取沙盒根目录获取沙盒根目录,直接调用NSHomeDirectory()://获取沙盒根目录NSString *directory = NSHomeDirectory();NSLog(@"directory:%@", directory);控制台输出:2015-07-22 00:40:16.185 iOSStrongDemo[1605:555658] director

2015-08-05 11:10:02 476

翻译 iOS开发之沙盒机制(SandBox)

iOS APP可以在自己的沙盒里读写文件,但是,不可以访问其他APP的沙盒。每一个APP都是一个信息孤岛,相互是不可以进行通信的,唯独可以通过URL Scheme。沙盒里面的文件可以是照片、声音文件、文本、属性列表等。沙盒机制简介沙盒简述:每一个APP都有一个存储空间,就是沙盒。APP之间不能相互通信。沙盒根目录结构:Documents、Library、temp

2015-08-05 11:07:55 498

翻译 iOS开发之NSString的几条实用技巧

NSString的几条小技巧创建字符串常量字符串NSString *string = @"i am an iOSDevTip!";常用创建方法NSString *string = [[NSString alloc] init];string = @"i am an iOSDevTip too!";用initWithString创建字符串NSStr

2015-08-05 11:00:33 284

翻译 截取UIImage指定大小区域

最近遇到这样的需求:从服务器获取到一张照片,只需要显示他的左半部分,或者中间部分等等。也就是截取UIImage指定大小区域。UIImage扩展我的解决方案是对UIImage进行扩展。通过CGImageRef和CGImage完成截取,调用的方法是:CGImageCreateWithImageInRect。扩展类叫UIImage+Crop,具体代码如下:UIImage+Crop

2015-08-05 10:57:14 415

翻译 iOS开发之layoutSubviews的作用和调用机制

在UIView里面有一个方法layoutSubviews,这个方法具体作用是什么呢?- (void)layoutSubviews; // override point. called by layoutIfNeeded automatically. As of iOS 6.0, when constraints-based layout is used the base implemen

2015-08-05 10:52:00 257

ios录音并转MP3格式

ios录音并转MP3格式

2016-06-12

SDWebImage内存警告修复版

SDWebImage在加载大图片的时候虽然会自动释放内存但是还是会报内存警告,已经修复了

2015-08-07

iOS AES加密代码

在iOS系统下实现数据的AES加密 可用作数据存储及传输加密

2014-11-18

swift新语言

The Swift Programming Language中文完整版 Using Swift with Cocoa and Objective-C中文精校版

2014-07-24

空空如也

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

TA关注的人

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