自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 制作Swift 私有库 上传 Pod

最近工作需要做framework,遇到一些问题做下记录。用swift语言创建framework,在创建2个target(swift,oc)做测试用。如下图一、制作framework时注意的问题写1个Class测试用open class TestClass: NSObject { @objc open func test1(){ print(#...

2019-04-21 05:08:30 785

原创 OpenGLES学习之路之图元(三)

OpenGL ES可以绘制 点精灵、直线和三角形。假如在GL_ARRAY_BUFFER 中有一组顶点坐标 p1(-0.5,0.5,0.0)、p2(0.5,0.5,0.0)、p3(-0.5,-0.5,0.0)、p4(0.5,-0.5,0.0)1、点精灵在绘制点精灵时候可以在顶点着色器输出 gl_PointSize ,控制点的大小。绘制类型用GL_POINTS。2、直线在...

2019-03-07 15:20:19 196

原创 OpenGLES学习之路之绘制(二)

OpenGL 的绘制大致可以分为两个部分:索引形式和非索引形式。非索引形式非索引形式的绘制是按照顶点数据的顺序读取绘制。非索引形式用 void glDrawArrays(GLenum mode, GLint first,GLsizei count) 方法。mode: 图元类型first:数组起始位置count: 个数索引形式索引形式的绘制需要用到绑定在GL_E...

2019-03-06 16:06:03 228

原创 OpenGLES学习之路之着色器编译链接(一)

因为我是iOS开发者,所以学习OpenGLES用的是XCode。搭建我的第一个OpenGLES应用程序。首先创建一个应用程序。创建后需要把ViewController的UIView改为GLKView,如下图。在ViewController引入框架GLKit,让ViewController继承GLKViewController。然后创建EAGLContext,我理解EAGLC...

2019-03-06 11:01:18 368

原创 AVFoundation之音视频采集(一)拍照、视频采集(H264)

访问摄像头先添在info 文件中添加NSCameraUsageDescription key字段。用AVFoundation做音视频采集,首先记住一张图。这张图完全展示了AVFoundation 是如何做音视频采集的。1.首先创建一个AVCAaptureSeesion对象。2.获取输入设备,输入设备指的是摄像机和麦克风。获取输入设备是为了初始化输入会话(AVCap...

2019-03-01 17:35:25 1028

原创 OpenGLES(Swift)--图片显示(一)

    OpenGL ES 是在OpenGL的简化版,是苹果提供了一个既易于学习又更易于在移动图形硬件中实现的库。    OpenGL ES中没有定义窗口,在iOS中使用GLKView来呈现OpenGL ES的内容,使用GLKViewController来管理视图。以下一个简单的例子显示一张图片(Swift语言编写)。首先引进GLKit框架import GLKit把sto...

2019-01-01 22:39:07 952

原创 swift socket 服务端

socket服务器在iOS端,可以用BSD Socket + CFNetwork + Stream + NetService实现。首先用BSD Socket创建socket -> 绑定-> 监听fd4 = socket(AF_INET, SOCK_STREAM, 0)//创建ipv4 socket//绑定 let sockaddrIn = sock...

2018-11-08 21:02:03 961

原创 swift socket编程客户端(二)--CFNetwork和Stream

CFNetwork是位于更上层框架,它相对BSD Socket的优势在于被集成到系统级的设置与主运行循环中。用CFNetwork创建socket 比BSD Socket 方便很多客户端大体分为1.创建 readStream 和 writeStream 2.为 readStream 和 writeStream 添加回调3.把readStream 和 writeStream加入runl...

2018-11-08 17:47:13 1337

原创 swift socket编程客户端(一)--BSD Socket

在iOS上编写Socket 一般会用到三个框架1.BSD Socket2.CFNetwork API3.StreamBSD Socket是C语音实现的,在初始化Socket的时候不会自动打开设备Wi-Fi或者蜂窝无线网。所以在iOS上编程最好用CFNetwork或者Stream。BSD Socket的主要API(swift 代码) socket(addressFamily:...

2018-11-08 16:21:00 1449

原创 Swift Timer引起循环引用

当我们写一下代码会发现,deinit不会调用。class ViewController: UIViewController { var timer:Timer? override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading ...

2018-10-17 16:39:12 1086

原创 Xcode profiles signing问题

最近在项目中发现distribution 的profiles一直报signing问题打包只能使用developer的profiles。    最后在Build Settings中发现有个Code Signing identity 字段。 把developer换回distribution就好了。Xcode中所有的profiles 路径是 /Users/yunf...

2018-10-16 09:57:56 744

原创 swift 获取硬件信息

let ptr = UnsafeMutablePointer<utsname>.allocate(capacity: 1) uname(ptr) let mirro = Mirror(reflecting: ptr.pointee.machine)//反射 var identifier = mirro.children....

2018-09-26 16:47:54 446

原创 swift4.2标准库更改

swift4.2发布了1、RangeReplaceableCollection 集合添加根据条件删除方法(官方原文)protocol RangeReplaceableCollection { /// Removes every element satisfying the given predicate from the collection. mutating func rem...

2018-09-25 16:41:20 445

原创 swift和oc混编_Nullable和_Nonnull

在swift和oc混编的时候,在swift中调用oc代码的时候总是会有optional,必须要解包,很麻烦。在xcode6.3中添加新特性_Nullable(可空)和_Nonnull(非空),只要类型是对象和指针就可以用使用。oc:#import <Foundation/Foundation.h>typedef void (^StrBlock)(NSString* );@int...

2018-06-20 16:18:53 820

原创 swift 指针使用(三)——原始指针

UnsafeMutableRawPointer用类方法初始化必须指定分配内存大小和对其方式let count = 3 let rawPtr = UnsafeMutableRawPointer.allocate(bytes: MemoryLayout.stride*count, alignedTo: MemoryLayout.alignment)//初始化无类型指针

2018-01-22 14:16:23 549

原创 swift 指针使用(二)——类型指针

在swift中使用指针有一种叫做类型的指针,他是指向特定类型内存的指针分别是UnsafePointer和UnsafeMutablePointer使用指针时,指针的内存管理不是自动,必须自己管理var a = 1let ptr = UnsafeMutablePointer.allocate(capacity: 1) //初始化 Int类型 的指针ptr.pointee =

2018-01-22 10:42:57 347

原创 swift 指针使用 (一)

在介绍指针使用有必要介绍下一个枚举那就是MemoryLayout:有3个常用方法MemoryLayout.size,MemoryLayout.stride,MemoryLayout.alignment分别是返回类型T占用内存大小,在连续储存空间中2个实例的距离,对齐方式。看下面例子MemoryLayout.size // 8MemoryLayout.str

2018-01-21 22:17:41 599

原创 swift 逃逸闭包 @escaping

在swift3.0之后闭包默认都是非逃逸的。当一个闭包作为参数被传入保存后,等待稍后在调用,这样的闭包就是逃逸的,逃逸闭包必须添加@escaping标注。 看下面例子:class ExampleClass { var handlers:[()->Void] = [] func someEscapingFunc(closure:@escaping ()->Void) {

2018-01-09 09:28:14 674

原创 iOS(Swift语言) WKWebView js交互

WKWebView是苹果在iOS8新引进的框架,在做WKWebView的js交互的时候:一、WKWebView调用JS使用WKWebView的evaluateJavaScript 方法:举个例子如果js中有个name 方法调用js方法很简单只要webView.evaluateJavaScript("name1()"){ (result,error)}调用后会有闭包返回。二、用JS调用WKWebV...

2018-01-05 17:31:02 1569 3

空空如也

空空如也

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

TA关注的人

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