- 博客(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 859
原创 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 279
原创 OpenGLES学习之路之绘制(二)
OpenGL 的绘制大致可以分为两个部分:索引形式和非索引形式。非索引形式非索引形式的绘制是按照顶点数据的顺序读取绘制。非索引形式用 void glDrawArrays(GLenum mode, GLint first,GLsizei count) 方法。mode: 图元类型first:数组起始位置count: 个数索引形式索引形式的绘制需要用到绑定在GL_E...
2019-03-06 16:06:03 250
原创 OpenGLES学习之路之着色器编译链接(一)
因为我是iOS开发者,所以学习OpenGLES用的是XCode。搭建我的第一个OpenGLES应用程序。首先创建一个应用程序。创建后需要把ViewController的UIView改为GLKView,如下图。在ViewController引入框架GLKit,让ViewController继承GLKViewController。然后创建EAGLContext,我理解EAGLC...
2019-03-06 11:01:18 650
原创 AVFoundation之音视频采集(一)拍照、视频采集(H264)
访问摄像头先添在info 文件中添加NSCameraUsageDescription key字段。用AVFoundation做音视频采集,首先记住一张图。这张图完全展示了AVFoundation 是如何做音视频采集的。1.首先创建一个AVCAaptureSeesion对象。2.获取输入设备,输入设备指的是摄像机和麦克风。获取输入设备是为了初始化输入会话(AVCap...
2019-03-01 17:35:25 1106
原创 OpenGLES(Swift)--图片显示(一)
OpenGL ES 是在OpenGL的简化版,是苹果提供了一个既易于学习又更易于在移动图形硬件中实现的库。 OpenGL ES中没有定义窗口,在iOS中使用GLKView来呈现OpenGL ES的内容,使用GLKViewController来管理视图。以下一个简单的例子显示一张图片(Swift语言编写)。首先引进GLKit框架import GLKit把sto...
2019-01-01 22:39:07 993
原创 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 1021
原创 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 1425
原创 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 1523
原创 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 1143
原创 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 781
原创 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 501
原创 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 468
原创 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 893
原创 swift 指针使用(三)——原始指针
UnsafeMutableRawPointer用类方法初始化必须指定分配内存大小和对其方式let count = 3 let rawPtr = UnsafeMutableRawPointer.allocate(bytes: MemoryLayout.stride*count, alignedTo: MemoryLayout.alignment)//初始化无类型指针
2018-01-22 14:16:23 598
原创 swift 指针使用(二)——类型指针
在swift中使用指针有一种叫做类型的指针,他是指向特定类型内存的指针分别是UnsafePointer和UnsafeMutablePointer使用指针时,指针的内存管理不是自动,必须自己管理var a = 1let ptr = UnsafeMutablePointer.allocate(capacity: 1) //初始化 Int类型 的指针ptr.pointee =
2018-01-22 10:42:57 370
原创 swift 指针使用 (一)
在介绍指针使用有必要介绍下一个枚举那就是MemoryLayout:有3个常用方法MemoryLayout.size,MemoryLayout.stride,MemoryLayout.alignment分别是返回类型T占用内存大小,在连续储存空间中2个实例的距离,对齐方式。看下面例子MemoryLayout.size // 8MemoryLayout.str
2018-01-21 22:17:41 644
原创 swift 逃逸闭包 @escaping
在swift3.0之后闭包默认都是非逃逸的。当一个闭包作为参数被传入保存后,等待稍后在调用,这样的闭包就是逃逸的,逃逸闭包必须添加@escaping标注。 看下面例子:class ExampleClass { var handlers:[()->Void] = [] func someEscapingFunc(closure:@escaping ()->Void) {
2018-01-09 09:28:14 744
原创 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 1693 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人