一:send和awk解释
  • sed -n p filenamesed ----------------------------是一个流编辑器(stream editor)
  • awk ‘BEGIN {print “Hellow"}'awk --------是一种用于处理文本的编程语言工具。
二:传值方式总结
  • KVO底层会动态长生新的类,只能坚挺属性(一个对象的属性能背多个兑现监听,一个对象能监听多个对象的其他属性)
  • kvc/kvo底层是基于runtime
  • 代理,规范,代码多:一对一
  • 通知,发送和接收:一对多(一个通知能被多个对象接受,一个对象能接受多个通知)
三:block简单小结
bloack时基于指针和函数指针的,指向结构体的指针!外面使用__block之后里面能修改值,是因为block将地址传进去了

默认在栈里面,对block做一次copy操作就能将它放到堆里面并且一致使用它,还有一种方法是Block_copy(blockname)非Arc里面

四:swift代码更新:转2.0
Xcode 7中将代码转换成Swift 2的工具。该工具位于在Xcode的Edit菜单下--Convert > To Latest Swift Syntax。

五:使用GTMBase64编码解码字符串

  • GTMDefines.h GTMBase64.h GTMBase64.m
你可以在这里找到这三个文件(GTMDefines.h在第二页,点击右上角的next按钮即可跳转到第二页)

六:编解码函数(可以编解码字符串、图片、视频:filePath换成相应的即可):

从模拟器和真机的Documents路径下读取文件,编码后写入文件;读出来解码

// 加密函数

 1 -(void)func_encodeFile2 3 {4 5     //NSString *path = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/test.png"];6 7     NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/iphone4.mov"];8 9
10
11     //文件路径转换为NSData
12
13     NSData *imageDataOrigin = [NSData dataWithContentsOfFile:filePath];
14
15
16
17     // 对前1000位进行异或处理
18
19     unsigned char * cByte = (unsigned char*)[imageDataOrigin bytes];
20
21     for (int index = 0; (index < [imageDataOrigin length]) && (index < 1000); index++, cByte++)
22
23     {
24
25          *cByte = (*cByte) ^ arrayForEncode[index];
26
27     }
28
29     //对NSData进行base64编码
30
31     NSData *imageDataEncode = [GTMBase64 encodeData:imageDataOrigin];
32
33     [imageDataEncode writeToFile:filePath atomically:YES];
34
35 }

// 解密函数

 1 -(void)func_decodeFile2 3 {4 5     //NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/test.png"];6 7     NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/iphone4.mov"];8 9
10
11     // 读取被加密文件对应的数据
12
13     NSData *dataEncoded = [NSData dataWithContentsOfFile:filePath];
14
15
16
17     // 对NSData进行base64解码
18
19     NSData *dataDecode = [GTMBase64 decodeData:dataEncoded];
20
21
22
23     // 对前1000位进行异或处理
24
25     unsigned char * cByte = (unsigned char*)[dataDecode bytes];
26
27     for (int index = 0; (index < [dataDecode length]) && (index < 10); index++, cByte++)
28
29     {
30
31         *cByte = (*cByte) ^ arrayForEncode[index];
32
33     }
34
35
36
37     [dataDecode writeToFile:filePath atomically:YES];
38 }
39  

七:获取每一帧推按:
 1 [mImageGenerator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:CMTimeMakeWithSeconds(time, NSEC_PER_SEC)]] completionHandler:  2     ^(CMTime requestedTime, CGImageRef image, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error)  3     {  4            NSLog(@"actual got image at time:%f", CMTimeGetSeconds(actualTime));          if (image)  5         {  6             [CATransaction begin];  7             [CATransaction setDisableActions:YES];  8             [layer setContents:(id)image];  9
10             //UIImage *img = [UIImage imageWithCGImage:image];
11             //UIImageWriteToSavedPhotosAlbum(img, self, nil, nil);
12
13             [CATransaction commit];
14         }
15     }];  

八:iOS开发之流媒体常识
实时流媒体传输必须保证数据包的传输速度大于文件的播放速度,否则用户看到的视频会出现暂停。当网络堵塞情况下视频质量会下降,所以要想保证视频的质量渐进式下载会更好一些。

实时流媒体协议:

  • RTSP(Real Time Streaming Protocol)
  • MMS(Microsoft Media Server protocol)
  • HLS(Http Live Streaming)

这里主要介绍HLS,

HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案
九:M3U8文件概念
M3U8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。
十:swift中autoclosure
@autoclosure 把一句表达式自动封装成一个闭包(closure)

转载于:https://www.cnblogs.com/stronger-ios-lcx/p/5635470.html

iOS开发-开发总结(四)相关推荐

  1. iOS 11开发教程(十四)iOS11应用代码添加视图

    iOS 11开发教程(十四)iOS11应用代码添加视图 如果开发者想要使用代码为主视图添加视图,该怎么办呢.以下将为开发者解决这一问题.要使用代码为主视图添加视图需要实现3个步骤. (1)实例化视图对 ...

  2. iOS开发UINavigation系列四——导航控制器UINavigationController

    iOS开发UINavigation系列四--导航控制器UINavigationController 一.引言 在前面的博客中,我么你介绍了UINavigationBar,UINavigationIte ...

  3. Android IOS WebRTC 音视频开发总结(四二)-- webrtc开发者大会

    Android IOS WebRTC 音视频开发总结(四二)-- webrtc开发者大会 本文主要介绍11月要在北京举办的webrtc开发者全球大会,文章来自博客园RTC.Blacker,支持原创,转 ...

  4. IOS 初级开发入门教程(四)基础控件使用小练习

    前言 看完前面3章的内容,基本对IOS开发有一些认识了,这章我们开始动手去实践做点小练习,学习如何创建并设置标签和按钮(Label & Button)的相关属性,以及通过一个交互式的案例演示动 ...

  5. iOS蓝牙开发---CoreBluetooth[BLE 4.0] 初级篇[内附Demo地址]

    一.蓝牙基础知识 (一)常见简称 1.MFI  make for ipad ,iphone, itouch 专们为苹果设备制作的设备,开发使用ExternalAccessory 框架(认证流程貌似挺复 ...

  6. IOS开发系列--IOS程序开发概览

    IOS开发系列--IOS程序开发概览 2014-08-04 19:42 by KenshinCui, 9983 阅读, 51 评论, 收藏, 编辑 概览 终于到了真正接触IOS应用程序的时刻了,之前我 ...

  7. ios新手开发——toast提示和旋转图片加载框

    不知不觉自学ios已经四个月了,从OC语法到app开发,过程虽然枯燥无味,但是结果还是挺有成就感的,在此分享我的ios开发之路中的小小心得~废话不多说,先上我们今天要实现的效果图: 有过一点做APP经 ...

  8. ios实例开发精品文章推荐(8.5)

    IOS基础知识记录 IOS基础知识记录一         http://www.apkbus.com/android-131902-1-1.html IOS基础知识记录二         http:/ ...

  9. iOS视频开发(二):视频H264硬编码

    1.前言 前面我们已经介绍了在iOS开发中如果调用摄像头进行视频数据的采集和编解码.但折腾了这么多,对于YUV这玩意儿还是不是特别理解.其实在我的个人实践过程中我也一直搞不懂这个YUV,一顿恶补之后, ...

  10. 收集各种 iOS App 开发可以用到的代码示例

    code4app.com 这网站不错,收集各种 iOS App 开发可以用到的代码示例  cocoacontrols.com/ 英文版本的lib收集  objclibs.com/ 精品lib的收集网站 ...

最新文章

  1. table表头固定4种方法_4种细砂回收的方法分析
  2. Python中的super()简单用法
  3. 床车长时间自驾游,大家晚饭后至睡觉前这段时间都在忙什么?
  4. 剑指offer——22.链表中倒数第k个节点
  5. python图书馆预约系统_python实现图书馆研习室自动预约功能
  6. 如何在AI工程实践中选择合适的算法?
  7. python UDP Socket编程
  8. dpdk中文-dpdk虚拟机出错
  9. Spring Boot获取节假日API
  10. 如何用卡诺图化简带有约束条件的逻辑函数?
  11. Python Web开发的完整指南
  12. 【opencv】selective_search函数
  13. 黑色家具家居茶几沙发网站源码 织梦dedecms模板 [带手机版数据同步]
  14. 如何设置行间距和字间距?
  15. 慎用manifest
  16. Excel实现自动显示日期且不自动改变
  17. 计算机学后感作文400,科技展观后感作文400字(精选7篇)
  18. 40本编程开发电子书免费送
  19. origin两个图层图例合并_origin处理数据怎么添加图例 origin作图怎么添加
  20. qmail邮件为什么退信_调整为QMail

热门文章

  1. python接口测试-项目实践(二)获取接口响应,取值(re、json)
  2. 转载、Python的编码处理(二)
  3. LoadRunner 技巧之THML 与 URL两种录制模式分析
  4. 客户端控件调用服务器的参数
  5. Qt 程序获取各种文件路径方法
  6. uni-app实现上拉加载更多
  7. IOS开发之UI基础LOL英雄展示-15
  8. python调用外部程序 退出_Python调用(运行)外部程序
  9. SQL注入-基于MySQL的注入提权(十七)
  10. kali Linux 源更新