![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
文章平均质量分 62
宿命与相关
这个作者很懒,什么都没留下…
展开
-
iOS开发多线程篇—创建线程
iOS开发多线程篇—创建线程一、创建和启动线程简单说明一个NSThread对象就代表一条线程创建、启动线程(1) NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];[thread start];// 线程一启动,就会在线程thread中转载 2015-06-07 23:30:57 · 479 阅读 · 0 评论 -
iOS开发多线程篇—线程安全
iOS开发多线程篇—线程安全 一、多线程的安全隐患资源共享1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源比如多个线程访问同一个对象、同一个变量、同一个文件当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题示例一:示例二:问题代码: 1 // 2 // YYViewController.m 3 // 05-线转载 2015-06-07 23:34:01 · 555 阅读 · 0 评论 -
iOS开发多线程篇—NSOperation基本操作
iOS开发多线程篇—NSOperation基本操作一、并发数(1)并发数:同时执⾏行的任务数.比如,同时开3个线程执行3个任务,并发数就是3(2)最大并发数:同一时间最多只能执行的任务的个数。(3)最⼤大并发数的相关⽅方法- (NSInteger)maxConcurrentOperationCount;- (void)setMaxConcurrentOp转载 2015-06-07 23:38:03 · 509 阅读 · 0 评论 -
iOS开发多线程篇—自定义NSOperation
iOS开发多线程篇—自定义NSOperation一、实现一个简单的tableView显示效果实现效果展示: 代码示例(使用以前在主控制器中进行业务处理的方式)1.新建一个项目,让控制器继承自UITableViewController。 1 // 2 // YYViewController.h 3 // 01-自定义Operatio转载 2015-06-07 23:38:44 · 453 阅读 · 0 评论 -
iOS开发网络篇—搭建本地服务器
iOS开发网络篇—搭建本地服务器一、简单说明说明:提前下载好相关软件,且安装目录最好安装在全英文路径下。如果路径有中文名,那么可能会出现一些莫名其妙的问题。提示:提前准备好的软件apache-tomcat-6.0.41.tareclipse-jee-kepler-SR2-macosx-cocoa-x86_64.tar.gzjdk-8u5-macosx转载 2015-06-07 23:40:32 · 333 阅读 · 0 评论 -
iOS开发网络篇—数据安全
iOS开发网络篇—数据安全一、简单说明1.说明在开发应用的时候,数据的安全性至关重要,而仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题。如:可以利用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据“青花瓷”软件因此:提交用户的隐私数据时,一定不要明文提交,要加密处理后再提交 2.常见的加密算法转载 2015-06-07 23:43:59 · 367 阅读 · 0 评论 -
iOS开发网络篇—文件的上传
iOS开发网络篇—文件的上传说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中。本文介绍如何不借助第三方框架实现iOS开发中得文件上传。 由于过程较为复杂,因此本文只贴出部分关键代码。主控制器的关键代码:YYViewController.m 1 #import "YYViewController.h" 2 3 #define Y转载 2015-06-07 23:47:30 · 371 阅读 · 0 评论 -
iOS开发网络篇—数据缓存
iOS开发网络篇—数据缓存一、关于同一个URL的多次请求 有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的。 上面的情况会造成以下问题(1)用户流量的浪费(2)程序响应速度不够快解决上面的问题,一般考虑对数据进行缓存。 二、缓存 为了提高转载 2015-06-07 23:50:16 · 433 阅读 · 0 评论 -
iOS开发网络篇—使用ASI框架进行文件下载
iOS开发网络篇—使用ASI框架进行文件下载说明:本文介绍iOS网络编程中经常用到的框架ASI,如何使用该框架进行文件的下载。一、简单介绍代码示例: 1 #import "YYViewController.h" 2 #import "ASIHTTPRequest.h" 3 4 @interface YYViewController () 5 6转载 2015-06-07 23:50:03 · 396 阅读 · 0 评论 -
iOS开发拓展篇—CoreLocation简单介绍
iOS开发拓展篇—CoreLocation简单介绍一、简介1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如(1)导航:去任意陌生的地方(2)周边:找餐馆、找酒店、找银行、找电影院 2.在上述应用中,都用到了地图和定位功能,在iOS开发中,要想加入这2大功能,必须基于2个框架进行开发(1)Map Kit :用于地图展示(2转载 2015-06-07 23:54:49 · 286 阅读 · 0 评论 -
iOS开发拓展篇—CoreLocation定位服务
iOS开发拓展篇—CoreLocation定位服务一、简单说明1.CLLocationManagerCLLocationManager的常用操作和属性开始用户定位- (void)startUpdatingLocation;停止用户定位- (void) stopUpdatingLocation;说明:当调用了startUpdatingLocation方法后,就开始不断转载 2015-06-07 23:55:29 · 364 阅读 · 0 评论 -
iOS开发拓展篇—音频处理(音乐播放器1)
iOS开发拓展篇—音频处理(音乐播放器1)说明:该系列文章通过实现一个简单的音乐播放器来介绍音频处理的相关知识点,需要重点注意很多细节的处理。一、调整项目的结构,导入必要的素材 调整后的项目结构如下: 二、新建两个控制器(1)新建一个控制器,用于展示音乐文件列表界面,其继承自UITableViewController转载 2015-06-07 23:57:24 · 461 阅读 · 0 评论 -
iOS开发拓展篇—音频处理(音乐播放器2)
iOS开发拓展篇—音频处理(音乐播放器2)说明:该文主要介绍音乐播放界面的搭建。一、跳转1.跳转到音乐播放界面的方法选择 (1)使用模态跳转(又分为手动的和自动的) (2)使用xib并设置跳转2.两种方法的分析 可以使用模态的方法,添加一个控制器,让这个控制器和音乐播放控制器类进行关联,脱线,设置标识符且在cell的点击事件中执行segue即可。 步骤说明:转载 2015-06-07 23:58:06 · 659 阅读 · 0 评论 -
iOS开发拓展篇—音频处理(音乐播放器5)
iOS开发拓展篇—音频处理(音乐播放器5)实现效果:一、半透明滑块的设置 1 /** 2 *拖动滑块 3 */ 4 - (IBAction)panSlider:(UIPanGestureRecognizer *)sender { 5 6 //1.获得挪动的距离 7 CGPoint t=[sender translatio转载 2015-06-08 00:01:45 · 719 阅读 · 0 评论 -
iOS开发拓展篇—音频处理(音乐播放器6)
iOS开发拓展篇—音频处理(音乐播放器6)一、图片处理 说明:Aspect表示按照原来的宽高比进行缩放。Aspectfit表示按照原来的宽高比缩放,要求看到全部图片,后果是不能完全覆盖窗口,会留有空白。Aspectfill表示按照原来的宽高比缩放,但只能看到部分图片。引发的问题:可能会有一部分超出屏幕。所以,如果选择了Aspectfi转载 2015-06-08 00:03:06 · 728 阅读 · 0 评论 -
iOS开发多线程篇—多线程简单介绍
iOS开发多线程篇—多线程简单介绍 一、进程和线程1.什么是进程 进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ、Xcode,系统就会分别启动2个进程通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程1个进程要想执行任务,必须得有线程(每1个进程至少要转载 2015-06-07 23:30:39 · 283 阅读 · 0 评论 -
iOS开发多线程篇—GCD的常见用法
iOS开发多线程篇—GCD的常见用法一、延迟执行1.介绍iOS常见的延时执行有2种方式(1)调用NSObject的方法[self performSelector:@selector(run) withObject:nil afterDelay:2.0];// 2秒后再调用self的run方法 (2)使用GCD函数dispatch_after(dispatch转载 2015-06-07 23:37:56 · 511 阅读 · 0 评论 -
iOS开发多线程篇—NSOperation简单介绍
iOS开发多线程篇—NSOperation简单介绍一、NSOperation简介1.简单说明NSOperation的作⽤:配合使用NSOperation和NSOperationQueue也能实现多线程编程NSOperation和NSOperationQueue实现多线程的具体步骤:(1)先将需要执行的操作封装到一个NSOperation对象中(2)然转载 2015-06-07 23:37:23 · 424 阅读 · 0 评论 -
iOS开发网络篇—发送json数据给服务器以及多值参数
iOS开发网络篇—发送json数据给服务器以及多值参数一、发送JSON数据给服务器发送JSON数据给服务器的步骤:(1)一定要使用POST请求(2)设置请求头(3)设置JSON数据为请求体代码示例: 1 #import "YYViewController.h" 2 3 @interface YYViewController () 4 5 @end转载 2015-06-07 23:49:42 · 333 阅读 · 0 评论 -
iOS开发拓展篇—音效的播放
iOS开发拓展篇—音效的播放一、简单介绍简单来说,音频可以分为2种(1)音效又称“短音频”,通常在程序中的播放时长为1~2秒在应用程序中起到点缀效果,提升整体用户体验(2)音乐 比如游戏中的“背景音乐”,一般播放时间较长框架:播放音频需要用到AVFoundation.framework框架 二、音效的播放1.转载 2015-06-07 23:52:50 · 524 阅读 · 0 评论 -
iOS开发拓展篇—封装音频文件播放工具类
iOS开发拓展篇—封装音频文件播放工具类一、简单说明1.关于音乐播放的简单说明(1)音乐播放用到一个叫做AVAudioPlayer的类(2)AVAudioPlayer常用方法 加载音乐文件- (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError;- (id)ini转载 2015-06-07 23:54:13 · 501 阅读 · 0 评论 -
iOS开发拓展篇—CoreLocation地理编码
iOS开发拓展篇—CoreLocation地理编码一、简单说明CLGeocoder:地理编码器,其中Geo是地理的英文单词Geography的简写。1.使用CLGeocoder可以完成“地理编码”和“反地理编码”地理编码:根据给定的地名,获得具体的位置信息(比如经纬度、地址的全称等)反地理编码:根据给定的经纬度,获得具体的位置信息 (1)地理转载 2015-06-07 23:56:07 · 301 阅读 · 0 评论 -
iOS开发多线程篇—线程间的通信
iOS开发多线程篇—线程间的通信 一、简单说明线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 线程间通信的体现1个线程传递数据给另1个线程在1个线程中执行完特定任务后,转到另1个线程继续执行任务 线程间通信常用方法- (void)performSelectorOnMainThread:(转载 2015-06-07 23:33:57 · 402 阅读 · 0 评论 -
iOS开发多线程篇—GCD介绍
iOS开发多线程篇—GCD介绍一、简单介绍1.什么是GCD?全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”纯C语言,提供了非常多强大的函数 2.GCD的优势GCD是苹果公司为多核的并行运算提出的解决方案GCD会自动利用更多的CPU内核(比如双核、四核)GCD会自动管理线程的生命周期(创建线程、调转载 2015-06-07 23:34:41 · 456 阅读 · 0 评论 -
iOS开发网络篇—网络编程基础
iOS开发网络篇—网络编程基础一、为什么要学习网络编程1.简单说明在移动互联网时代,移动应用的特征有:(1)几乎所有应用都需要用到网络,比如QQ、微博、网易新闻、优酷、百度地图(2)只有通过网络跟外界进行数据交互、数据更新,应用才能保持新鲜、活力(3)如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将变成一潭死水 移动网络应用 = 良好的UI + 良好的用转载 2015-06-07 23:39:47 · 350 阅读 · 0 评论 -
iOS开发网络篇—HTTP协议
iOS开发网络篇—HTTP协议说明:apache tomcat服务器必须占用8080端口一、URL1.基本介绍URL的全称是Uniform Resource Locator(统一资源定位符)通过1个URL,能找到互联网上唯一的1个资源URL就是资源的地址、位置,互联网上的每个资源都有一个唯一的URL 2.URL中常见的协议转载 2015-06-07 23:41:21 · 272 阅读 · 0 评论 -
iOS开发拓展篇—UIDynamic(简单介绍)
iOS开发拓展篇—UIDynamic(简单介绍)一、简单介绍1.什么是UIDynamicUIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象如:重力、弹性碰撞等现象 2.物理引擎的价值广泛用于游戏开发,经典成功案例是“愤怒的小鸟”让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿转载 2015-06-07 23:52:03 · 327 阅读 · 0 评论 -
iOS开发拓展篇—音乐的播放
iOS开发拓展篇—音乐的播放一、简单说明 音乐播放用到一个叫做AVAudioPlayer的类,这个类可以用于播放手机本地的音乐文件。注意: (1)该类(AVAudioPlayer)只能用于播放本地音频。 (2)时间比较短的(称之为音效)使用AudioServicesCreateSystemSoundID来创建,而本地时间较长(称之为音乐)使用AVAud转载 2015-06-07 23:53:34 · 576 阅读 · 0 评论 -
iOS开发拓展篇—音频处理(音乐播放器3)
iOS开发拓展篇—音频处理(音乐播放器3)说明:这篇文章主要介绍音频工具类和播放工具类的封装。一、控制器间数据传递1.两个控制器之间数据的传递第一种方法:self.parentViewController.music=self.music[indexPath.row];不能满足第二种做法:把整个数组传递给它第三种做法:设置一个数据源,设置播放控制器的转载 2015-06-07 23:58:52 · 565 阅读 · 0 评论 -
iOS开发拓展篇—音频处理(音乐播放器4)
iOS开发拓展篇—音频处理(音乐播放器4)说明:该文主要介绍音乐播放器实现过程中的一些细节控制。实现的效果: 一、完整的代码YYPlayingViewController.m文件 1 // 2 // YYPlayingViewController.m 3 // 20-音频处理(音乐播放器1) 4 // 5 // Crea转载 2015-06-07 23:59:32 · 551 阅读 · 0 评论 -
iOS开发拓展篇-XMPP简单介绍
iOS开发拓展篇-XMPP简单介绍一、即时通讯简单介绍1、简单说明即时通讯技术(IM)支持用户在线实时交谈。如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容有许多的IM系统,如AOL IM、Yahoo IM、 MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议协转载 2015-06-08 00:02:35 · 471 阅读 · 0 评论 -
iOS开发多线程篇—线程的状态
iOS开发多线程篇—线程的状态一、简单介绍线程的创建: self.thread=[[NSThread alloc]initWithTarget:self selector:@selector(test) object:nil];说明:创建线程有多种方式,这里不做过多的介绍。 线程的开启:[self.thread start];转载 2015-06-07 23:36:42 · 423 阅读 · 0 评论 -
iOS开发多线程篇—GCD的基本使用
iOS开发多线程篇—GCD的基本使用一、主队列介绍主队列:是和主线程相关联的队列,主队列是GCD自带的一种特殊的串行队列,放在主队列中得任务,都会放到主线程中执行。提示:如果把任务放到主队列中进行处理,那么不论处理函数是异步的还是同步的都不会开启新的线程。获取主队列的方式: dispatch_queue_t queue=dispatch_get_main_queue();转载 2015-06-07 23:37:16 · 467 阅读 · 0 评论 -
iOS开发网络篇—GET请求和POST请求
iOS开发网络篇—GET请求和POST请求一、GET请求和POST请求简单说明创建GET请求1 // 1.设置请求路径2 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username转载 2015-06-07 23:43:19 · 281 阅读 · 0 评论 -
iOS开发网络篇—NSURLConnection基本使用
iOS开发网络篇—NSURLConnection基本使用一、NSURLConnection的常用类(1)NSURL:请求地址(2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法、请求头、请求体....(3)NSMutableURLRequest:NSURLRequest的子类(4)NSURLConnecti转载 2015-06-07 23:45:32 · 269 阅读 · 0 评论 -
iOS开发网络篇—简单介绍ASI框架的使用
iOS开发网络篇—简单介绍ASI框架的使用说明:本文主要介绍网络编程中常用框架ASI的简单使用。一、ASI简单介绍ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大。ASI的实现基于底层的CFNetwork框架,因此运行效率很高。可惜作者早已停止更新,有一些潜在的BUG无人去解决ASI的github地址https://g转载 2015-06-07 23:48:14 · 362 阅读 · 0 评论 -
iOS开发网络篇—监测网络状态
iOS开发网络篇—监测网络状态一、说明在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的:(1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能)(2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI\3G网络:自动下载高清图片 低速网络:只下载缩略图 没有网络:只显示离线的缓存数据转载 2015-06-07 23:48:52 · 367 阅读 · 0 评论 -
iOS开发拓展篇—xib中关于拖拽手势的潜在错误
iOS开发拓展篇—xib中关于拖拽手势的潜在错误一、错误说明自定义一个用来封装工具条的类搭建xib,并添加一个拖拽的手势。 主控制器的代码:加载工具条封装工具条以及手势拖拽的监听事件 此时运行程序,程序直接崩溃,报错如下: 说明:手势不会有superView方法,superView是UIView的方法,说明我们错误的把手势对象当成是UIView来用了转载 2015-06-08 00:02:13 · 576 阅读 · 0 评论 -
iOS开发拓展篇—应用之间的跳转和数据传
iOS开发拓展篇—应用之间的跳转和数据传说明:本文介绍app如何打开另一个app,并且传递数据。一、简单说明新建两个应用,分别为应用A和应用B.实现要求:在appA的页面中点击对应的按钮,能够打开appB这个应用。1.新建两个应用,分别为A和B. 2.设置应用B的url。3.在应用A中编写打开app的代码点转载 2015-06-08 00:02:10 · 366 阅读 · 0 评论 -
关于UITableView中的 TableFooterView的使用介绍
用UITableViewDelegate中的这个方法:- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;判定tableView中的数组数是否即将显示最后一个cell,if (indexP转载 2015-07-28 11:32:01 · 1109 阅读 · 0 评论