自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习笔记

不断学习与分享,成为优秀的人。

  • 博客(60)
  • 收藏
  • 关注

原创 uni-app引入地图map组件--APP开发

使用uni-app开发APP引入地图组件,地图显示空白,打包时未添加Maps模块

2022-08-24 16:16:38 4106 1

原创 Mac下校验gradle-version,报错:ERROR/ JAVA_HOME is set to an invalid directory

问题描述MacOS环境,AndroidStudio 配置gradle,校验gradle报错:gradle -versionERROR: JAVA_HOME is set to an invalid directory: /Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/HomePlease set the JAVA_HOME variable in your environment to match thelocat.

2021-05-19 15:09:47 5659

原创 iPhone获取设备UDID

一、Safari访问获取udid网址使用 iOS 设备的 Safari 浏览器打开 http://fir-cdn-source.0short.com/udid或扫描右侧的二维码二、安装证书打开链接后,点击“获取UDID”三、手机配置打开“设置” -> “通用”四、安装证书点开证书之后五、获取UDID安装证书之后,切换到Safari,长按出现的UDID复制,到微信发送即可。...

2021-02-02 11:58:53 1622 2

原创 Flutter下Android Studio配置gradle

一、失败的经历:手动配置gradle下载gradle包http://gradle.org/gradle-download/Mac Finder->Applications/应用程序->Android Studio右键显示包内容。继续打开Contents文件夹,正常情况下会有一个gradle文件夹,将下载解压之后的文件复制到这个文件夹下。如果Contents文件夹下没有gradl...

2020-04-08 18:47:50 4051

原创 网络知识之Cookie初识

Cookie是什么Cookie主要用来记录用户状态,区分用户,状态保存在用户端。Cookie流程:Client(保存cookie) <-- 请求/响应 + cookie --> Server(生成cookie)客户端发送的cookie在HTTP请求报文的cookie首部字段中。服务器端设置http相应报文的Set-Cookie首部字段怎样修改Cook...

2019-03-07 16:15:51 174

原创 OC中的空值nil\Nil\NULL\NSNull的区别

nil、Nill、NULL、[NSNull null]都是用来表示“空”或“零”。只不过表示不同种类的的“空”或“零”。也许和0与0.0一样,都表示“零”,但是一个对应整型,一个对应浮点型。一、nil定义// objc.h#ifndef nil# if __has_feature(cxx_nullptr) // 判断C++中是否有nullptr特性,一般iOS中无用# def...

2019-03-01 16:35:30 887

原创 iOS Object-C的id与instancetype关键字的异同点

在写一个单例方法的时候,被问到为什么返回值类型用instancetype而不用id。+ (instancetype)shareManager { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _shareManager = [[super allocWithZone:NULL]...

2019-03-01 11:22:12 509

原创 单例模式-如何保证单例对象全局唯一性?

单例概念:整个应用或系统只能有该类的一个实例,即是在整个项目中,这个类的对象只能被初始化一次。单例类保证了应用程序的生命周期中有且仅有一个该类的实例对象,而且易于外界访问。“单例模式中,怎么保证这个单例对象是唯一的。或者说如果在一个对外开放的SDK中,怎么才能保证用户获得的对象是唯一的单例?”当被问到这个问题的时候,其实是有点懵的。单例模式的单例对象不就是唯一的吗?否则怎么称之为单例模式?...

2019-02-28 15:35:23 5910

原创 解决SDWebimage加载过多过大图片导致内存爆表崩溃的问题

问题:Restore the connection to “xxxx” and run “xx” again, or if “xx” is still running, you can attach to it by selecting Debug > Attach to Process > xx.原因:collectionView一屏加载显示多个大图,导致内存消耗激增,...

2019-02-25 10:12:32 7786

原创 记录一次面试总结:面试也是一场修炼

格物、致知、诚意、正心、修身、齐家、治国、平天下,此大学之道,亦为人之道。在前往面试的路上,看到一篇文章《工作是人生的修炼》,文章中提到“生活处处是修炼”。其实,我理解的修炼,就是一个人不断修正自我、不断完善自我的过程。生活处处是修炼,因为我们可以从生活中学到很多东西,缺少的是一颗认真的心。工作是如此,这次的面试之后,同样体会到处处是修炼的意义。对这家公司的感官很好,可以说是很期待。主要...

2018-12-27 07:16:20 289

原创 一个平凡程序员的五年感悟:没有足够的付出,就没有热爱

本来是想写《一个失败程序员的五年感悟》,后来想了想,不管过去如何,不应该再去评断。既然已经客观存在,自己也能够意识到问题所在,在接下来的时间里去改、去努力就好了。不应该轻易地给自己打上失败的标签,太沉重。五年,我敢说对得起自己的工作,却唯独不敢说对得起自己的职业,我敢说自己喜欢过自己的职业,却不敢说自己热爱这份职业:iOS开发。也许过去的每一天没觉得什么,但是回过头来想想,超过三分之一的时...

2018-12-18 07:09:54 2068 3

原创 Laravel控制器间调用方法

问题描述laravel中外部通过route访问控制器方法。即每个路由指定路由,关联方法即可实现请求过程。但是不同控制器之间通过路由访问会出现一些不可预知的问题,通知也会损失一部分性能。现在的问题是,需要在一个控制器中调用另外一个控制中的方法。(因为意外产生的特殊需求,能解决一部分问题)tips:如果能够直接通过路由直接访问方法是最好的方式,只是有些需要合并多个请求或者其他特殊请求的时候,可...

2018-11-14 10:19:43 9055 1

原创 编写高质量iOS与OSX代码的52个有效方法-第七章-系统框架

47、熟悉系统框架将一系列代码封装为动态库(dynamic library),并在其中放入描述其接口的头文件,这样做出来的东西就叫框架。图形界面用到名为Cocoa的框架。常用到的主要框架就是Foundation,框架中的类使用NS前缀。是所有OC应用程序的基础。不仅提供了collection等基础核心功能,还提供字符串处理这种复杂功能。CoreFoundation不是OC框架,但却...

2018-07-27 17:27:36 182

原创 编写高质量iOS与OSX代码的52个有效方法-第六章:大中枢派发GCD

41、多用派发队列,少用同步锁OC中,如果有多个线程执行同一份代码,有时可能会出问题。通常情况下,使用锁来实现某种同步机制。GCD之前有两种方法1、内置的同步块(synchronization block)- (void)synchronizeMethod { @synchronized(self) { // }}根据给定对象,自动...

2018-07-25 15:37:41 162

原创 编写高质量iOS与OSX代码的52个有效方法-第六章:块Block

当前多线程编程的核心就是块(block)与大中枢派发(Grand Central Dispatch,GCD)。块是一种可在C、C++、OC代码中使用的语法闭包(lexical closure),借由此机制,开发者可以将代码想对象一样传递,令其在不同环境下运行。还有个关键地方,在定义块的范围内,它可以访问到其中的全部变量。GCD是一种与块相关的技术,它提供了对线程的抽象,而这种抽象则基于派发...

2018-07-23 16:46:47 341

原创 编写高质量iOS与OSX代码的52个有效方法-第五章:内存管理

在OC这种面向对象的语言中,内存管事是个重要概念。要想用一门语言写出内存使用效率高而且又没有bug的代码,就得掌握其内存管理模型的种种细节。OC引用给自动引用计数(Automatic Reference Counting,ARC)之后,几乎吧所有内存管理事宜都交由编译器来决定。29、引用计数OC通过引用计数来管理内存,每个对象都已个可以递增或递减的计数器。如果想要某个对象继续存活,...

2018-07-20 14:17:39 155

原创 编写高质量iOS与OSX代码的52个有效方法-第四章:协议与封装

协议(protocol)与java的接口类似。CO不支持多重继承,因而吧某个类应该实现的一系列方法定义在协议里。协议最常见的用途是事先委托模式,也有其他用法。分类(Category)是OC一项重要语言特性。利用分类机制,无需继承子类就可以直接为当前类添加方法。由于OC运行期系统是高度动态的,所以才能支持这一特性,也有一些坑。23、通过委托与数据源协议进行对象间通信委托模式(Dele...

2018-07-20 14:15:57 167

原创 编写高质量iOS与OSX代码的52个有效方法-第三章:接口与API协议

15、使用前缀避免命名空间冲突1、重命名符号错误OC没有其他语言内置的命名空间(namespace),命名时要避免潜在的命名冲冲突(naming clash):比如如下错误,就是重命名符号错误(duplicate symbol error)。duplicate symbol _OBJC_CLASS_$_DogObject in: xxx/DogObject-ED86...

2018-07-18 09:44:44 196

原创 编写高质量iOS与OSX代码的52个有效方法-第二章:对象、消息、运行期

用OC等面向对象语言编程时,对象(object)就是基本构造单元(building block),开发者可以通过对象来存储并传递数据。在对象之间传递数据并执行任务的过程就叫做消息传递(Messaging).当应用程序运行起来之后,为其提供相关支持的代码叫做Objective-C运行期环境(runtime),它提供了一些使得对象之间能够传递消息的重要函数,并且包含创建类实例所用的全部逻辑。...

2018-07-17 17:28:30 190

原创 编写高质量iOS与OSX代码的52个有效方法-第一章:熟悉OC

1、了解OCOC使用消息结构(messaging structure)而不是函数调用(function calling)。OC由Smalltalk演化而来。使用消息结构的语言,其运行时所执行的代码由运行环境来决定;而使用函数调用的语言,有编译器决定。采用消息结构的语言,不论是否多态,总是在运行时才会去查找所要执行的方法。编译器甚至不关心接收消息的对象是何种类型。接收消息的对象问题也要在...

2018-07-12 16:02:28 337

原创 AVFoundation编程指南文档-整理思维导图

官方文档地址总结思维导图。

2018-07-06 14:31:59 548

原创 手机通过TestFlight安装测试应用

一、APPStore搜索下载TestFlight下载完成,打开应用。登录自己的AppleID。先TestFlight是苹果官方应用,不会影响AppleID的使用。二、接收邮件通过Safari或者其他应用邮件应用,接收参与测试的邀请邮件。 点击* View in TestFlight * 。默认直接跳转TestFlight。三、TestFlight接受,安装应用直接...

2018-07-02 17:24:05 16725

原创 集成百度地图SDK-Undefined symbols for architecture x86_64

集成百度地图SDK,按照文档设置之后,运行报错。Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_NSMutableParagraphStyle", referenced from: objc-class-ref in BaiduMapAPI_Base(VBGL.o) "_UIGraphicsPushCo...

2018-06-25 13:51:02 3490

原创 AVFoundation开发秘籍笔记-12动画图层内容CoreAnimation

一、Core Animation提供一种简单的、声明式程序模型使得在不需要使用OpenGL或者OpenGL ES框架的情况下就可以很容易地创建高性能、基于GPU的动画效果。Core Animation包含两类对象:Layers。图层对象由CALayer类定义,并用于管理屏幕内可视化内容的元素。这里所说的内容一般都是图片或者Bezier路径,不过图层本身具有可被设置的可视化特征,比如背...

2018-06-22 10:39:05 466

原创 AVFoundation开发秘籍笔记-11创建视频过渡效果

一、常用的类1、AVVideoComposition对两个或多个视频轨道组合在一起的方法给出了总体描述。由一组时间范围和描述组合行为的介绍内容组成,这些信息出现在组合资源内的任意时间点。除了包含描述输入视频层组合的信息之外,还提供了配置视频组合的渲染尺寸、缩放和帧时长等属性。视频组合配置确定了委托对象处理时AVComposition的呈现方式。这里的委托对象比如AVPlayer或A...

2018-06-21 11:04:55 956

原创 AVFoundation开发秘籍笔记-010混合音频初接触

直接组合音频会有一些问题:1、音乐轨道刚开始播放时音量就很大,在组合资源结束时突然停止。如果可以开始逐渐增加,结束的时候逐渐减小会提升体验。2、画外音轨道的处理。音乐轨道声音完全父爱画外音的声音,几乎听不到画外音。框架提供AVAudioMix来解决上面的两个问题。AVAudioMix用来在组合音频轨道中进行自定义音频的处理。AVAudioMix所具有的音频处理方法是由它的输入...

2018-06-19 14:44:50 856 1

原创 AVFoundation视频处理的时间CMTime

一、CMTimeCore Media定义的一种时间数据类型typedef struct{ CMTimeValue value; //64位有符号整型变量,作为分子 CMTimeScale timescale; //32位有符号整型变量,作为分母 // value/timescale = 对应时间-秒 CMTimeFlags flags; //位掩...

2018-06-19 10:23:00 4878

原创 AVFoundation开发秘籍笔记-09媒体的组合和编辑

一、组合媒体AVFoundation有关资源的组合功能源于AVAsset的子类AVComposition。一个组合就是将其他几种媒体资源组合成一个自定义的临时排列,再将这个临时排列视为一个可以呈现或处理的独立媒体项目。比如AVAsset对象,组合相当于包含了一个或多个给定类型的媒体轨道的容器。AVCamposition中的轨道都是AVAssetTrack的子类AVComposition...

2018-06-15 16:22:34 1259

原创 AVFoundation开发秘籍笔记-08读取与写入媒体

一、综述AVFoundation定义了一组功能可以用于创建媒体应用程序时遇到的大部分用例场景。 还有一些功能不受AVFoundation框架的内置支持,需要使用框架的AVAssetReader和AVAssetWriter类提供的低级功能,可以直接处理媒体样本。1、AVAssetReader用于从AVAsset中读取媒体样本,通常会配置一个或多个AVAssetReaderOutpu...

2018-06-14 18:32:36 1150

原创 AVFoundation开发秘籍笔记-07高级捕捉功能之机器码识别(条码扫描)

一、概述机器码识别,也就是条码扫描。AVFoundation定义了多种欧冠条码符号进行实时识别的方法,前置或后置摄像头都可以。真个流程同人脸识别大体相似,区别就是输入元数据格式不同,另外就是对于元数据的处理和视图处理不同。只要掌握流程,再去做更多的定制就容易很多,首先要明白基本原理以及视频捕捉基本原理二、创建项目1、创建并配置会话1、创建会话self....

2018-06-07 11:50:34 703

原创 AVFoundation开发秘籍笔记-07高级捕捉功能之人脸识别

一、概述这里的人脸检测是通过AVFoundation实现的实时人脸检测功能,会在检测到人脸自动建立相应的焦点。AVFoundation中通过特定的AVCaptureOutput类型的AVCaptureMetadataOutput实现这个功能。它的输出同之前类似,输出的不是静态图片或影片,而是元数据。定义了用来处理多种元数据类型的接口,当使用人脸检测时,会输出一个具体子类类型AVMetada...

2018-06-06 14:19:12 1061

原创 AVFoundation开发秘籍笔记-07高级捕捉功能之录制视频缩放

概述AVCaptureDevice提供videoZoomFactor属性,用用控制捕捉设备的缩放等级。这个属性最小值为1,即不能进行缩放的图片。最大值由捕捉谁被属性activeFormat决定。它是AVCaptureDeviceFormat的实例,还包含有设备支持的最大缩放值videoMaxZoomFactor。设备执行缩放效果是通过居中裁剪由摄像头传感器捕捉到的图片实现。所以过度放大...

2018-06-06 11:10:58 853

原创 AVFoundation开发秘籍笔记-06捕捉媒体

一、捕捉功能1、捕捉会话 AVCaptureSessionAVFoundation捕捉栈的核心类是AVCaptureSession。一个捕捉会话相当于一个虚拟的“插线板”,用于连接输入和输出的资源。捕捉会话管理从屋里设备得到的数据流,比如摄像头和麦克风设备,输出到一个或多个目的地。可以动态配置输入和输出的线路,可以再会话进行中按需配置捕捉环境。捕捉会话还可以额外配置一个会话预设...

2018-06-05 17:34:22 468

原创 Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed"

Error Domain=AVFoundationErrorDomain Code=-11800 “The operation could not be completed”xxxxxError Domain=AVFoundationErrorDomain Code=-11800 “The operation could not be completed” UserInfo={AV...

2018-06-05 10:51:16 13197

原创 AVFoundation开发秘籍笔记-05AVKit用法-AVPlayerViewController

MediaPlayeriOS3.0-iOS9.0定义了MPMoviePlayerController和MPMoviePlayerViewController两个类,提供简单的方法将完整的视频播放功能整合到应用程序中。播放、暂停、快进等功能需要导入对应的库文件#import <MediaPlayer/MediaPlayer.h>,iOS8.0以后可以不再使用这个库,iOS9...

2018-05-29 15:00:28 835

原创 AVFoundation开发秘籍笔记-04视频播放

一、播放功能综述1、AVPlayerAVPlayer用来播放基于时间的视听媒体的控制器对象。支持播放从本地、分步下载或通过HTTP Live Streaming协议得到的流媒体,并在多种播放场景中播放这些视频资源。AVPlayer是一个不可见组件,如果播放MP3或AAC音频文件,那么没有可视化的用户界面不会有什么问题。如果是要播放一个QuickTime电影或一个MPEG-4视频,就...

2018-05-25 16:00:05 742

原创 AVFoundation开发秘籍笔记-03资源和元数据

一、资源AVAssetAVAsset是一个抽象类和不可变类,定义媒体资源混合呈现的方式,将媒体资源的静态属性模块化成为一个整体,比如标题、时长和元数据等。AVAsset不需要考虑媒体资源所具有的两个重要范畴:1、提供了对基本媒体格式的层抽象,不需要关注具体格式,只关注资源这个概念。2、隐藏资源的位置信息。AVAsset本身不是媒体资源,但他可以作为时基媒体的容器,由一个或多个带有描述自...

2018-05-25 15:59:26 35128 1

原创 AVFoundation开发秘籍笔记-02播放和录制音频

一、音频会话 AVAudioSession音频会话在应用程序和操作系统之间扮演着中间人的角色,提供一种简单实用的方法是OS得知应用程序应该如何与iOS音频环境进行交互。AVAudioSession有AVFOundation框架引入。每个iOS应用程序都有自己的一个音频会话,这个会话可以被AVAudioSession的类方法sharedInstance访问。音频会话是一个单例对象,可以使...

2018-05-25 15:58:00 731

原创 AVFoundation开发秘籍笔记-01AVFoundation入门

一、概述AVFoundation是可以用它来播放和创建基于时间的视听媒体的几个框架之一,它提供了基于时间的视听数据的详细界别上的OC接口。可以用它来检查、创建、编辑、重新编码媒体文件。也可以从设备得到输入流和实时捕捉回放过程中操控视频用于处理基于时间的媒体数据的高级OC框架。充分利用了多核硬件的优势并大量使用block和Grand Central Dispatch(GCD)机制将复杂的计算...

2018-05-25 15:56:58 877

原创 iOS开发技能树之OC-初识、基本数据类型

Objective-C是C语言的超集,是有一些自己独有特性的C语言,简称ObjC或者OC。前面用的C语言的基本数据类型,在OC中同样适用,但OC也有一些自己的基本数据类型。OC是面向对象的编程语言(OOP Object-Oriented Programming)。新建一个简单OC工程打开Xcode,Create a new Xcode project -> macOS -&g...

2018-05-17 14:40:07 717

空空如也

空空如也

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

TA关注的人

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