- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 iOS并发编程对比总结,NSThread,NSOperation,GCD - iOS
1. 多线程概念进程正在进行中的程序被称为进程,负责程序运行的内存分配每一个进程都有自己独立的虚拟内存空间线程线程是进程中一个独立的执行路径(控制单元)一个进程中至少包含一条线程,即主线程可以将耗时的执行路径(如:网络请求)放在其他线程中执行创建线程的目的就是为了开启一条新的执行路径,运行指定的代码,与主线程中的代码实现同时运行 1.1 多任务系统调度示意图 说明:每个应用
2016-08-30 21:26:55 4182
原创 property属性的weak,strong,copy,assign
@property属性的用法weak(assign) : 代理\UI控件strong(retain) : 其他对象(除代理\UI控件\字符串以外的对象)copy : 字符串assign : 非对象类型(基本数据类型int\float\BOOL\枚举\结构体)
2016-08-25 17:03:42 913
原创 iOS控制器管理,代码,xib,Storyboard,Segue - iOS
控制器的创建如何创建一个控制器控制器常见的创建方式有以下几种通过storyboard创建直接创建ViewController *viewController = [[ViewController alloc] init];指定xib文件来创建ViewController *viewController = [[ViewController alloc] initWithNibName:@"
2016-08-25 17:01:55 1105 2
原创 iOS程序启动过程,原理,UIApplication,代码启动界面 - iOS
程序启动的完整过程1.main函数2.UIApplicationMain创建UIApplication对象创建UIApplication的delegate对象3.delegate对象开始处理(监听)系统事件(没有storyboard)程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法在applicat
2016-08-21 21:31:46 2691
转载 boundingRectWithSize:options:attributes:context:代替sizeWithFont:constrainedToSize:lineBreakMode:
之前用Text Kit写Reader的时候,在分页时要计算一段文本的尺寸大小,之前使用了NSString类的sizeWithFont:constrainedToSize:lineBreakMode:方法,但是该方法已经被iOS7 Deprecated了,而iOS7新出了一个boudingRectWithSize:options:attributes:context方法来代替:先来看看iOS7 SDK
2016-08-18 09:56:50 1212
原创 Xcode插件管理工具Alcatraz,常用插件介绍 -iOS
简单介绍Xcode插件的安装方式,并推荐几个比较好用的Xcode插件,清理缓存,快捷文档注释,自动补全图片名称,模糊方式补全代码,自动隐藏调试窗口,
2016-08-17 11:15:40 4631
原创 Notification通知,通知中心,发布通知,通知代理对比 - iOS
通知对象之间标准的信息传递方式:一个对象调用另一个对象的方法。这要求发送消息的对象知道谁接收消息,消息的响应是什么。但是比如两个独立的子系统,没有耦合关系,就需要另一种形式,通知 Notification通知中心(NSNotificationCenter)Cocoa 有两种类型的通知中心NSNotificationCenter类在单进程中管理通知NSDistributedNotification
2016-08-16 21:39:38 1775
原创 UIButton,UIScrollView,UITableView常见属性,使用案例 - iOS
IBAction: 1> 能保证方法可以连线 2> 相当于voidIBOutlet: 1> 能保证属性可以连线下面列举一些在开发中可能用得上的UI控件UIButton 按钮UILabel 文本标签UITextField 文本输入框UIImageView 图片显示UIProgressView 进度条UISlider 滑块UISwitch 开关UISegmentControl 选项
2016-08-15 21:50:48 1566
原创 集合间相互转换,浅谈相关内存管理,使用NSData处理数据,使用NSDate - iOS
NSArray 转换成 NSMutableArrayNSArray * array = @[@"one",@"two",@"three"];NSMutableArray * muArray = [NSMutableArray arrayWithArray:array];NSLog(@"muarray %@",muArray);NSDictonary 转换成 NSMutableDictionary
2016-08-14 15:52:14 1071
原创 NSSet 集合创建,获取,遍历,可变集合的删除 - iOS
NSSet 集合NSArray 自然顺序NSSet是无序的注意:这个是最为重要的功能 NSSet 中不能够存储重复的数据,可以用它来去除重复的值NSString * str1 = @"one";NSString * str2 = @"two";NSString * str3 = @"three";NSSet * set = [[NSSet alloc] initWithObjects:
2016-08-14 15:17:25 5250
原创 NSDictionary字典创建,获取,遍历,可变字典的删除 - iOS
字典是以键值对的形式来存储数据 key value1 NSDictionary 字典1.1 创建字典,不可变的NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaozhe",@"name", nil];NSLog(@"dic %@",dic);2016-08-14 14:44:17.460 07-字典类[232
2016-08-14 15:09:22 26484
原创 NSArray/NSMutableArray创建,获取,遍历,排序 - iOS
1 数组基本1.1 创建数组NSArray 是不可变数组,一旦创建完成就不能够对数组进行,添加,删除等操作下面这种方式相当于什么都没做NSArray * array = [[NSArray alloc] init];NSLog(@"%@",array);1.2 通过构造方法的方式创建一个NSArray在创建一个NSArray的时候,集合的最后一个元素一定是nilNSArray * array1 =
2016-08-14 15:08:09 12540
原创 Protocol 协议总结 - iOS
简单使用1 基本用途可以用来声明一大堆方法(不能声明成员变量)只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明只要父类遵守了某个协议,就相当于子类也遵守了2 格式协议的编写@protocol 协议名称 <NSObject> // 方法声明列表....@end3 关键字协议中有2个关键字可以控制方法是否要实现(默认是 @required ),在大多数情况下,用途在于程序
2016-08-13 21:10:11 3020
原创 iOS - @property 和 @synthesize 总结
@property用在 @interface 中用来自动生成 setter 和 getter 的声明用 @property int age; 就可以代替下面的两行- (int)age; // getter- (void)setAge:(int)age; // setter@synthesize用在 @implementation 中用来自动生成 setter 和 getter 的实现
2016-08-13 21:09:05 711
原创 Class 类的本质 - iOS
1 类也是个对象其实类也是一个对象,是 Class 类型的对象,简称 “类对象”Class 类型的定义#if !OBJC_TYPES_DEFINED/// An opaque type that represents an Objective-C class.typedef struct objc_class *Class;/// Repre
2016-08-13 21:07:12 805
原创 description 方法 和 SEL - iOS
description-description 方法使用 NSLog 和 %@ 输出某个对象时,会调用对象的 -description 方法,并拿到返回值进行输出+description 方法使用 NSLog 和 %@ 输出某个对象时,会调用类对象 +description 方法,并拿到返回值进行输出Class c = [Person class];NSLog(@"%@", c);会调用类的 +d
2016-08-13 21:00:45 658
原创 Category 分类、类别 总结 - iOS
分类作用分类:可以给某一个类扩充一些方法(不修改原来类的代码)格式// 声明@interface Person (分类名称)@end// 实现@implementation Person (分类名称)@end好处一个庞大的类可以分模块开发一个庞大的类可以由多个人来编写,更有利于团队合作给系统自带的类添加分类给 NSString 添加一个类方法,计算某个字符串中阿拉伯数字的个数给 NSS
2016-08-13 20:59:29 3442
原创 Automatic Reference Counting (ARC) 总结
ARC的判断准则:只要没有强指针指向对象,就会释放对象ARC特点不允许调用 release、 retain、 retainCount。允许重写dealloc,但是不允许调用[super dealloc]。@property的参数strong :成员变量是强指针(适用于OC对象类型) weak :成员变量是弱指针(适用于OC对象类型)以前的retain改为用strong指针分2钟: -
2016-08-12 21:18:12 647
原创 Objective-C内存管理[iOS]
移动设备的内存极其有限,每个 app 所能占用的内存是有限制的当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间。比如回收一些不需要使用的对象、变量等。管理范围:任何继承了 NSObject 的对象,对其他基本数据类型(如int, char, float, double, struct, enum 等)无效
2016-08-12 14:54:12 733
翻译 [iOS]Advanced Memory Management Programming Guide 高级内存管理编程指南(官方文档翻译)
应用程序的内存管理是程序运行时内存分配的过程,使用它,并当你用完它的时候释放它。写得好的程序应该尽可能少的使用内存。在Objective-C,它也可以被看作是分布 数据和代码的许多块当中的有限的内存资源的所有权的方法。当您完成通过这一指南的工作,你将有一些关于你的应用程序的内存管理知识,你需要明确管理对象的生命周期,并且当他们不再需要管理时释放他们。
2016-08-12 14:42:13 2724
翻译 About HTTP Live Streaming官方文档翻译 [iOS]
HTTP Live Streaming (HLS) 是苹果公司的技术,有关流媒体直播和点播音频/视频内容,支持iPhone, iPad, iPod touch, Apple TV, 和 Mac。内部 对 HLS 内容的传递 使用与HTTP协议相同的协议来处理网络服务。 HTTP可以轻松地使用普通的Web服务器,而不是专门的流媒体服务器 来部署流媒体内容。HLS流行为像常规的网络流量。工作方式为预先缓存基础结构,比如内
2016-08-10 21:52:58 3382
翻译 AVFoundation Programming Guide(官方文档翻译)完整版中英对照
AVFoundation 是可以用它来播放和创建基于时间的视听媒体的几个框架之一。它提供了基于时间的视听数据的详细级别上的Objective-C接口。例如,你可以用它来检查,创建,编辑或重新编码媒体文件。您也可以从设备得到输入流和在实时捕捉回放过程中操控视频。图I-1显示了iOS上的架构。
2016-08-07 19:42:35 8327 6
翻译 AVFoundation Programming Guide(官方文档翻译7)Time and Media Representations 时间和媒体表示
基于视听资料的时间,比如一个电影文件或视频流,在AV Foundation 框架中是由 AVAsset 代表的。它的结构决定了大部分的框架工程。一些低层的数据结构(AV Foundation 使用来表示时间和媒体,比如样本缓冲区)来自 Core Media framework。
2016-08-07 19:38:27 2959 4
翻译 AVFoundation Programming Guide(官方文档翻译6)Export - 输出
必须使用 AVFoundation 框架提供的导出 APIs 去读写音视频资产。AVAssetExportSession 类为简单输出需要,提供了一个接口,例如修改文件格式或者削减资产的长度(见 Trimming and Transcoding a Movie)。为了更深入的导出需求,使用 AVAssetReader 和 AVAssetWriter 类。
2016-08-07 19:36:37 2913 2
翻译 AVFoundation Programming Guide(官方文档翻译5)Still and Video Media Capture - 静态视频媒体捕获。
从一个设备,例如照相机或者麦克风管理捕获,组合对象来表示输入和输出,并使用 AVCaptureSession 的实例来协调它们之间的数据流。你需要最低限度的了解:AVCaptureDevice 的实例表示输入设备,比如照相机或麦克风AVCaptureInput 的具体子类的实例从输入设备配置端口AVCaptureOutput 的具体子类的实例来管理输出一个电影文件或者静态图像AVCaptureSe
2016-08-07 19:35:00 4770 6
翻译 AVFoundation Programming Guide(官方文档翻译4)Editing - 编辑
AVFoundation 框架提供了一个功能丰富的类集合去帮助音视频资产的编辑。 AVFoundation 编辑 API 的核心是一些组合。一种组合物是简单的一个或者多个不同媒体资产的轨道的集合。AVMutableComposition 类提供一个可以插入和移除轨道的接口,以及管理它们的时间序列。图3-1显示了一个新的组合是怎样从一些现有的资产拼凑起来,形成新的资产。如果你想做的是将多个资产合并为一个单一的文件,
2016-08-07 19:32:28 4619 9
翻译 AVFoundation Programming Guide(官方文档翻译3)Playback - 播放
使用 AVPlayer 对象控制资产的播放。在播放期间,可以使用一个 AVPlayerItem 实例去管理资产作为一个整体的显示状态,AVPlayerItemTrack 对象来管理一个单独轨道的显示状态。使用 AVPlayerLayer 显示视频。
2016-08-07 19:30:52 2095 2
翻译 AVFoundation Programming Guide(官方文档翻译2)Using Assets - 使用Assets
Assets 可以来自文件或者媒体用户的iPod库、图片库。当你创建一个 asset 对象时,所有你可能想要检索该项目的信息不是立即可用的。一旦你有了一个电影 asset ,你可以从里面提取静态图像,转换到另一个格式,或者对内容就行修剪。
2016-08-07 19:29:11 2240 4
翻译 AVFoundation Programming Guide(官方文档翻译1)About AVFoundation - AVFoundation概述
AVFoundation 是可以用它来播放和创建基于时间的视听媒体的几个框架之一。它提供了基于时间的视听数据的详细级别上的Objective-C接口。例如,你可以用它来检查,创建,编辑或重新编码媒体文件。您也可以从设备得到输入流和在实时捕捉回放过程中操控视频。图I-1显示了iOS上的架构。
2016-08-07 19:27:04 6195 3
原创 [iOS文档翻译]AVFoundation Programming Guide - About AVFoundation - AVFoundation概述
版权声明:本文为博主原创翻译,如需转载请注明出处。 苹果源文档地址 - 点击这里About AVFoundation - AVFoundation概述AVFoundation is one of several frameworks that you can use to play and create time-based audiovisual media. It provides
2016-08-04 18:09:07 1216
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人