自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(204)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 ts视频生成m3u8

#include <stdio.h>#include <libavcodec/avcodec.h>//#include <libavutil/time.h>#include <libavformat/avformat.h>#define M3U8_TS_LEN 32typedef struct { int fps; AVCodec *codec; AVFrame *frame; AVPacket *pkt; .

2021-08-06 16:10:42 1661

原创 ffmpeg视频编码及封装

#include <stdio.h>#include <libavcodec/avcodec.h>//#include <libavutil/time.h>#include <libavformat/avformat.h>static void encode(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt, AVFormatContext *oc).

2021-08-06 11:58:19 537

原创 libxvid视频编码代码实现

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <ctype.h>#include <sys/time.h>//#include "portab.h" /* for pthread */#include "xvid.h"// Equivalent to vfw's pmvfast_presetss.

2021-08-06 11:57:14 468

原创 msecond

staticdoublemsecond(){#ifndefWIN32structtimevaltv;gettimeofday(&tv,0);return(tv.tv_sec*1.0e3+tv.tv_usec*1.0e-3);#elseclock_tclk;clk=clock();return(clk*1000.0/CLOCKS_PER_SEC);#endif}...

2021-08-02 10:34:15 150

原创 window强制删除文件bat

DEL /F /A /Q \\?\%1RD /S /Q \\?\%\1

2021-07-31 15:48:59 753

转载 123道c++笔试题汇总

1.new、delete、malloc、free关系new和delete对应、malloc和free对应。new和delete是c++语言的标准库函数,而malloc和free是c++的运算符。它们都可用于申请动态内存和释放内存,区别在对非内部数据类型的对象而言,malloc和free无法满足动态对象的要求(因为对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数)2.delete与 delete []的区别delete只会调用一次析构函数,而delete[]会调用每一个成员

2021-04-29 12:41:08 6510

原创 UIImagePickerController

在App开发时,当需要调用摄像头拍照或者希望从相册中选择一张照片时,都可以使用UIImagePickerController类来完成。UIImagePickerController类把从iOS设备中获取图片的操作进行了统一封装,使用图片来源来进行区分,也就是说:不论从摄像头拍照获取图片,还是从相册中选取图片,区别仅仅在于获取图片的渠道或方式不同,其他对图片的处理都是统一的。UIImagePickerController类中提供了用于图片选择的相关属性以及方法,同时定义了UIImagePicker-Con

2021-03-31 17:23:06 452

原创 MKMapView

在MapKit框架中,最重要的一个类就是MKMapView类。MKMapView类可以为用户提供一个展示地图的界面,程序员可以在地图上进行进一步的功能定制。在MKMapView类中,有如下一些比较常用的属性和方法。设置地图的展示类型。在MKMapView中提供了3种地图展示的方式,分别为MKMapTypeStandard(标准图)、MKMapTypeSatellite(卫星图)、MKMapTypeHybrid(混合图),其中最常用的是MKMapTypeStandard(标准图)。// 设

2021-03-31 17:15:48 609

原创 CoreLocation

CoreLocation框架对iOS设备的定位功能进行了封装,通过CoreLocation框架可以获取iOS设备的地理位置信息,包括设备的经纬度、海拔等。在CoreLocation框架中,有CLLocationManager以及CLLocation两个核心类需要重点掌握。CLLocationManager类用于定位服务管理类,当需要获取设备的位置信息时,需要通过CLLocationManager类来统一管理。通过CLLocationManager类,不仅可以获取位置信息,也可以监控设备进入或离开某个区域

2021-03-31 16:39:42 204

原创 UIDevice

通过UIDevice类可以获取iOS设备的状态信息,例如设备的名称、操作系统版本号、UUID等基本信息,同时还能够获取诸如电池状态、设备朝向等信息。借助通知机制,当系统状态发生改变时,可以通知应用做出对应的响应动作。1.获取设备的基本信息1.获取设备的基本信息// 设备的名称@property(nonatomic, readonly, strong) NSString *name;// 设备的类型,例如iPhone、iPod touch。@property(nonatomic, reado

2021-03-31 15:53:35 232

原创 Core Animation

Core Animation的动画执行过程都是在后台操作的,因此不会阻塞主线程,核心动画是直接作用于CALayer对象上的。当对一个UIView视图对象显示的内容进行旋转操作时,其本质是修改UIView的layer属性,对layer所展示的样式进行旋转操作后,再渲染到屏幕上。CAAnimation类是一个抽象类,因此这里不会直接创建CAAnimation类的对象,而是使用其子类对象。其有3个子类,分别为:CAPropertyAnimiation属性动画;CAAnimationGroup动画组;C

2021-03-31 12:14:22 111

原创 CALayer

视图UIView类中有一个重要的属性——layer,类型是CALayer类,这个属性是负责视图外观样式的。当创建一个视图类时,除了能够在一块矩形区域内显示样式外,还能够与用户进行交互,这是因为UIView类继承自UIResponder类。当设置UIView的一些外观属性时,例如:背景颜色、大小、透明度等,其本质上是修改的UIView对象中layer的属性。CALayer的常用属性// 实例化方法。+(instancetype)layer;// frame:该layer相对于父layer的位置

2021-03-31 11:52:11 106

原创 UIImage绘图应用

UIImageView是一个可以显示图片的视图控件,其能够显示图片的本质也是通过绘图来实现的,即,首先加载一张图片(UIImage对象),然后在drawRect:方法中把图片绘制到绘图上下文中,并显示出来。UIImage类中创建UIImage对象的方法:// imageNamed:类方法,从main bundle中读取图片文件。通常情况下图片放置在工程的Assets.xcassets文件夹中,只要提供文件名即可创建UIImage对象。+(nullable UIImage *)imageNamed

2021-03-31 11:35:57 214

原创 CoreGraphics

CoreGraphics中最关键的部分是一个名为Quartz 2D的API集合,它包含了各种函数、数据类型以及对象,能够让大家在内存中直接绘制视图和图像。CoreGraphics框架几个重要概念:画布(page):Quartz 2D将正在进行绘制的视图视作一个虚拟的画布,在画布上用画笔画画,就必须遵循一定的规则,例如,绘制的内容是有先后顺序的。路径(Path):当你拿到一支画笔时,就能够随心所欲地在画纸上绘画,画笔移动的轨迹就是路径。绘图上下文(Graphics Context):绘图上下文有时

2021-03-31 10:23:49 311

原创 Realm

Realm是一款专门针对移动平台设计的数据库,因此其能够无缝支持iOS以及Android,并且支持Objective-C、Swift、Java、React Native等多种编程语言编写。为了掌握Realm的使用,需要预先了解并掌握Realm中的一些重要概念以及类。RLMRealm类:可以理解为Realm创建的用于数据存储的数据库类,与CoreData中的管理上下文(managed object context)类似。对于存储在Realm中的数据,都需要获取到一个RLMRealm类的对象,然后对其中

2021-03-31 09:32:28 139

原创 Core Data

Core Data是苹果官方提供的管理数据层对象的框架,它提供了对象—关系映射(ORM)的功能,即能够将Objective-C对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成Objective-C对象。在此数据操作期间,不需要编写任何SQL语句。Core Data针对对象生命周期,以及持久化的对象图管理(object graph management)中的一些常见问题提供了解决方案。CoreData的主要任务是负责数据更改的管理、序列化到磁盘、最小化内存占用以及查询数据。C

2021-03-30 17:55:48 647

原创 FMDB

在FMDB中,提供了3个核心类,需要程序员重点掌握。FMDatabase:数据库类,所有的SQL语句都需要在数据库中执行。FMResultSet:执行SELECT语句后,查询数据库的结果集。FMDatabaseQueue:如果要在多线程上执行查询和更新,需要用到这个类。如果需要创建一个数据库,只需要给FMDatabase类提供一个数据库文件存储的路径即可。在FMDatabase.h文件中,提供了databaseWithPath:方法,用于快速创建一个数据库。+(instancetype)d

2021-03-30 17:46:09 210

原创 SQLite

存储在SQLite数据库中的数据具有以下几种存储类型:存储类型 描述 NULL 一个NULL值 INTEGER 一个带符号的整数,根据值得大小存储在1、2、3、4、6或8字节中 REAL 一个浮点值,存储为8字节的IEEE浮点数字 TEXT 一个文本字符串,使用数据库编码()存储 BLOB 一个blob数据,完全根据它的输入存储 创建一个SQLite数据库。在控制器类中添加一个sqlite3类型的属性。#import <sqlit

2021-03-30 17:27:16 89

原创 归档(序列化)

归档(序列化),即把对象转为字节码,以文件的形式存储到磁盘上;程序运行过程中或者当再次打开程序的时候,可以通过解归档(反序列化)还原这些对象。只要遵循了NSCoding协议的对象都可以通过它实现序列化。归档和解档在Foundation框架中分别对应NSKeyedArchiver类和NSKeyedUnarchiver类,在这两个类的定义中,提供了用于对象归档和解档的方法。用于归档以及解档的方法都是成对出现的,即一个归档方法必然对应了一个解档的方法。// 把对象归档到一个文件中。+(BOOL)arc

2021-03-30 16:05:16 4788

原创 NSUserDefaults(偏好设置)

偏好设置本质上就是一个Plist文件,不过该Plist文件是由系统自动创建的,并且在Foundation框架中提供了一些专用的访问方法。关于偏好设置需要了解以下两个要点。偏好设置也是保存在应用的沙盒中的,保存的路径在Library/Preferences路径下。偏好设置可以理解为是一个特殊的Plist文件,但由于其本质上还是Plist文件,因此,存储形式还是使用键值对的方式。在Foundation框架中的NSUserDefaults.h文件中,提供了NSUserDefaults类的方法和属性,常用

2021-03-30 15:39:14 468

原创 Plist

Plist文件是iOS开发过程中非常常用的一种数据持久化方案,鉴于Plist属于文件存储,不是数据库存储,所以当数据量不是特别大时,建议采用。Plist文件的顶层结构通常是由一个字典或者一个数组构成的。因此,Plist文件的读取思路,就是把Plist文件中的所有数据一次性读取出来,然后放到一个字典对象或数组对象中,供后续操作使用。获取Plist文件所在路径,由于是手工新增的Plist文件,因此存储在mainBundle中。NSString *path = [[NSBundle mainBundl

2021-03-30 15:29:36 161

原创 SendBox(沙盒)

iOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在本应用的文件夹内读取文件,不可以访问其他区域的内容,此区域被称为沙盒。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。关于沙盒需要提前了解下面的几个要点:每个应用程序都有属于本应用的沙盒存储空间。应用程序不能随意跨越自己的沙盒去访问其他的应用程序沙盒的内容。应用程序向外读写数据都需要经过权限认证。默认情况下,每个应用的沙盒包含3个文件夹:Documents、Library和tmp。由于沙盒机制的存在

2021-03-30 15:10:18 1317

原创 NSOperation

NSOperation在iOS 4后也基于GCD实现,但是相对于GCD来说可控性更强,并且可以加入操作依赖。NSOperation是一个抽象类,因此系统提供了NSBlockOperation和NSInvocationOperation两个子类,并且可以创建继承自NSOperation的自定义类。相比于GCD,NSOperation更加面向对象,开发者除了不需要去了解线程相关的概念之外,甚至连GCD中需要了解的异步/同步、并行/串行都不太需要深入了解,开发者只要懂得任务和队列即可。NSBlockOper

2021-03-30 12:15:55 107

原创 GCD

GCD是苹果公司推出的专门用于简化多线程编程的技术。在GCD中,程序员已经不再需要去关心有关线程的操作(如:线程创建、线程销毁、线程调度),而是引入了任务和队列两个核心概念。在使用GCD处理多任务执行时,只要按照如下步骤执行即可。在Block中定义需要执行的任务内容。把任务添加到队列queue中。GCD对队列中的任务,按照“先进先出”的原则,根据任务添加到队列的顺序来对队列进行处理,GCD会根据任务和队列的类型,自动在多个线程之间分配工作。在GCD中,需要处理的事务统一使用Block封装起

2021-03-30 11:52:39 65

原创 UISegmentedControl

在许多应用程序中,开发者会加入一些主题选项以便对显示的信息做进一步分类。例如,App Store应用程序的排行榜导航栏上显示着“付费”“免费”“畅销排行”选项,而这种展示方式就是通过UISegmentedControl来实现的。UISegmentedControl的使用方法类似于UIButton,它不仅可以提供多个选择操作,并且也可以响应交互事件。实例化方法。该方法中需要传递一个数组类型的items参数,在该参数中填写需要展示的标题(NSString类)或者图片(UIImage类)。-(instan

2021-03-30 10:56:52 143

原创 UIDatePicker

UIDatePicker提供了一个快速选择日期和时间的控件,它是UIControl的子类,专门用于日期、时间的选择。其样式可以通过UIDatePicker的属性进行灵活设置,同时也可以获取到当前UIDatePicker的值,从而进行下一步的操作。设置UIDatePicker的展示样式。UIDatePicker支持4种类型的样式,分别为UIDatePickerModeTime(仅显示时间)、UIDatePickerModeDate(仅显示日期)、UIDatePickerModeDateAndTim

2021-03-29 18:30:30 558

原创 UISlider

UISlider控件就是通常用于调节亮度、透明度、音量时出现的滑动条。UISlider控件是通过滑块所处的位置来标识数值,它允许用户拖动滑块来改变当前值。UISlider类中以下常用属性与方法需要重点掌握。// 设置当前slider的值,默认是0。@property(nonatomic) float value;// 设置滑块左边的图片。@property(nullable, nonatomic, strong) UIImage*minimumValueImage;// 设置滑块右边的图片。

2021-03-29 18:24:28 277

原创 UIPickerView

UIPickerView是一个选择器控件。它既可以生成单列选择器,也可以生成多列选择器,比如地址选择器就是如此。1.UIPickerViewDataSource数据源协议UIPickerView中展示的数据项都是通过其数据源对象来实现的,UIPickerView的数据源对象需要遵守UIPickerViewDataSource数据源协议。在UIPickerViewDataSource数据源协议中定义了以下两个方法,这两个方法都是强制必须要实现的。// 设置UIPickerView中所包含的列数,在

2021-03-29 18:12:42 398

原创 UIPageControl

UIPageControl是一个比较简单的控件,该控件由N个小圆点组成,每个圆点可以表示一个页面,当前页面以高亮的圆点显示。默认情况下,UIPageControl可以与用户互动,并且监测当前值的变化(UIControlEventValueChanged),继而调用自定义的方法来实现界面的切换。UIPageControl属性和方法介绍// 设置总页数。@property(nonatomic) NSInteger numberOfPages;// 设置当前页,当前页的颜色会突出显示。@proper

2021-03-29 17:59:11 1293

原创 UITextView

UITextView类继承自UIScrollView,所以它拥有UIScrollView类的属性和方法,支持上下滑动,因此适合长文本的输入。1.UITextView的属性介绍UITextView与UITextField的属性大同小异// 文字内容。@property(null_resettable, nonatomic, copy) NSString *text;// UITextView的背景颜色。@property(nullable, nonatomic, copy) UIColor *

2021-03-29 17:29:48 872

原创 WKWebView

WKWebView是Webkit框架中提供的类。WKWebView与之前的UIWebView相比做了很多的功能提升,主要体现在以下几个方面。在性能、稳定性、功能方面有很大提升,减少了加载网页时占用的内存。更好地支持HTML5的特性。高达60fps的滚动刷新率以及内置手势。允许JavaScript的Nitro库加载并使用。将UIWebViewDelegate与UIWebView重构成了14类与3个协议。WKWebView常用属性// 网页标题@property(nullable, non

2021-03-29 16:58:33 152

原创 UIWindow、UIView与UIViewController的关系

1.UIWindow(窗口)UIWindow是一个特殊的UIView,UIWindow类继承自UIView。一般来说,一个App只有一个UIWindow,但特定情况下也会出现多个UIWindow,例如,键盘弹出的情况下,就会存在多个UIWindow。iOS启动完毕后,创建的第一个视图控件就是UIWindow,此时需要给UIWindow对象指定根控制器,即设置rootViewController属性,系统会自动把rootViewController的view添加到window上,从而在屏幕上就可以显示出程

2021-03-29 16:19:06 462

原创 UITabBarController

1 UITabBarController的常用属性和方法一般来说,目前市面上的App很多都是由一个UITabBarController管理着4~5个UINavigationController,然后每个UINavigationController又管理着一组UIViewController对象或者其子类对象(如UITableViewController、UICollectionViewController等)。在UITabBarController类中,有两个核心属性,分别为viewControll

2021-03-29 16:12:46 1067

原创 UINavigationController

导航控制器(UINavigationController)其本身的样式可供定制的内容并不是很多,但其主要作用在于容纳其他类型的控制器,并且实现不同控制器之间的跳转。学习导航控制器,最核心的知识在于掌握如何通过导航控制器实现控制器的跳转,以及如何定制导航栏样式。内容类控制器(Content ViewController):所谓内容类控制器,主要用于显示内容,常见的有UIViewController,UITableViewController,UICollectionViewController等。容器类

2021-03-29 12:06:49 312

原创 UIViewController

在MVC设计模式中,控制器负责向模型Model申请数据,同时负责控制数据显示到相应的视图View上。UIViewController是所有控制器的根类,常见的子类有UITableViewController、UICollectionViewController、UINavigationController、UITabbarController等。在App开发过程中,有3种创建控制器的方法,分别是:通过代码创建控制器(常用)。通过XIB创建控制器。通过Storyboard创建控制器。在Xco

2021-03-29 11:57:02 103

原创 UIGestureRecognizer

UIKit框架中一共提供了6种类型的手势操作,分别为:点击、捏合、旋转、滑动、拖动、长按。手势需要添加到UIView类以及其子类之上,同时每个UIView可以添加多个手势。1.UIGestureRecognizer类简介UIGestureRecognizer类是一个抽象类,不能直接使用,具体使用过程中需要使用其子类。UIGestureRecognizer一共包括6个子类,分别对应6种手势。UITapGestureRecognizer:点击。UIPinchGestureRecognizer:捏合

2021-03-28 13:04:10 201

原创 UICollectionView

集合视图由3部分组成。Cell:单元格。Supplementary View:补充视图,指的就是图中的Header与Footer,每个段Section都可以设置不同的补充视图。Decoration View:装饰视图,一般是用于背景。与表视图相比,集合视图引入了布局的概念,集合视图上的单元格布局方式是可以通过定制实现的,表视图中所有的单元格都是自上而下依次排列的,而集合视图中可以灵活定制单元格的布局方式单元格的布局设置是集合视图的重要特点。集合视图中布局方式由其UICollectionView

2021-03-26 17:48:14 129

原创 UITableView

表视图主要用于呈现一个滚动的选择列表,在使用过程中主要有三个步骤:初始化、数据源的设置以及委托代理方法的实现。1.UITableView简介在UITableView中数据只有行的概念,并没有列的概念,因为在手机中显示多列是不利于操作的。2.UITableView样式UITableView有两种样式:平铺(UITableViewStylePlain)和分组(UITableViewStyleGrouped)。这两者本质区别不大。在没有特别设置的情况下,UITableViewStyleGroupe

2021-03-26 11:39:57 144

原创 UIScrollView

UIScrollView是一个能够在上下左右四个方向滚动的控件,UITableView、UICollectionView也是继承自UIScrollView。UIScrollView用于显示超出屏幕大小的内容,一般需要配合其他控件来使用,如添加一个UIImageView子控件,可以用来显示更大的图片。UITableView、UICollectionView以及UITextView这些可以滑动显示更多内容的控件都是UIScrollView的子类。UIScrollView在使用过程中有如下3个核心属性。

2021-03-26 11:03:57 203

原创 UITextField

1 UITextField的基本属性1.UITextField的文本相关属性// 获取文本框中的文字@property(nullable, nonatomic, copy) NSString *text;// 占位符@property(nullable, nonatomic, copy) NSString *palceholder;// 字体颜色@property(nullable, nonatomic, strong) UIColor *textColor;// 字体大小@prop.

2021-03-25 17:29:36 173

面试_Android_PDF知识大全.pdf

Android面试知识点大全, 包含Android基础知识, 数据库 ,网络, 算法等等。对面试者会有很大的帮助。

2020-03-25

Visual Assist X 10.9.2210

Visual Assist X 很好用的西红柿, 解决中英文切换VS卡死问题。

2018-06-01

Thinking In C++ 非扫描版

Thinking In C++高清非扫描版。带书签,适合C++爱好者阅读提升

2018-06-01

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

TA关注的人

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