首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏gojam技术备忘录

    Swift4.2:Nil cannot be assigned to type UnsafeMutablePointer与Optional chaining

    由于直接抱着对其他语言的认识来使用swift,这个问题苦恼了我很久,当我用关键词“swift 空指针”搜索也没有得到有用信息,直到我发现swift一定要对可能为空的变量做标记——Optional(?&

    1.8K20发布于 2019-05-14
  • 来自专栏大话swift

    UnsafePoint 指针

    UnsafePointer的初始化 var cc = 12 let unsafe = UnsafePointer(&cc) printUnsafeAddress(atAddress: unsafe) 2 UnsafeMutablePointer let dataLength = data.count * MemoryLayout<UInt8>.stride let ptr = UnsafeMutablePointer<UInt8>.allocate let bytes = UnsafeMutablePointer<UInt8>.allocate(capacity: data.count) defer { bytes.deallocate data.count) return UnsafeRawPointer(bytes).assumingMemoryBound(to: CChar.self) } } extension UnsafeMutablePointer = UnsafeMutablePointer(mutating: self) let cBuffer = UnsafeMutableRawPointer.init(unsafeMutablePointer

    2K20发布于 2019-07-03
  • 来自专栏腾讯Bugly的专栏

    Swift 对象内存模型探究(一)

    <T>>.size //8 MemoryLayout<unsafeMutablePointer<T>>.alignment //8 MemoryLayout<unsafeMutablePointer unsafePointer unsafePointer<T> 等同于 const T *. unsafeMutablePointer unsafeMutablePointer<T> 等同于 T * unsafeRawPointer

    , UnsafeMutablePointer<Element>) throws -> R) rethrows -> R //基本数据类型 var a: T = T() var aPointer var nicknames: [String] = [String]() //返回指向 Human 实例头部的指针 func headPointerOfClass() -> UnsafeMutablePointer <Wolf.Type>.self, capacity: 1).initialize(to: wolfPtr.advanced(by: 0).assumingMemoryBound(to: UnsafeMutablePointer

    2.3K70发布于 2018-03-23
  • 来自专栏小黑娃Henry

    swift底层探索 06 - 指针简单使用swift底层探索 06 - 指针简单使用

    指针 Swift的指针分类两类: typed pointer指定类型指针:unsafePointer<T>,unsafeMutablePointer<T> raw pointer未指定类型指针:unsafeRawPointer ,unsafeMutableRawPointer Swift指针与OC指针类比 Swift OC unsafePointer<T> const T * 指定类型指针与指针内存都不可变 unsafeMutablePointer 实例二: var age : Int = 18 //创建、获取可变类型指针 let typeMutablePtr = withUnsafeMutablePointer(to: &age) {ptr -> UnsafeMutablePointer return ptr } print(age) print(typeMutablePtr.pointee) 输出结果 通过修改变量指针指向的值,来修改变量的值 实例三 //初始化 let ptr = UnsafeMutablePointer bindMemory: 将 UnsafeMutableRawPointer 指针类型更改为 UnsafeMutablePointer<Hr_HeapObject> assumingMemoryBound

    90330发布于 2021-08-09
  • 来自专栏HelloCode开发者学习平台

    高效学习iOS —— Stroke和路径动画

    scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer

    2.3K20编辑于 2022-01-14
  • 来自专栏CoderStar

    从 SIL 角度看 Swift 中的值类型与引用类型

    Swift import SwiftShims struct Test { init() } // main sil [ossa] @main : $@convention(c) (Int32, UnsafeMutablePointer <Optional<UnsafeMutablePointer<Int8>>>) -> Int32 { bb0(%0 : $Int32, %1 : $UnsafeMutablePointer<Optional <UnsafeMutablePointer<Int8>>>): %2 = integer_literal $Builtin.Int32, 0 // user: %3 %3 = <Optional<UnsafeMutablePointer<Int8>>>) -> Int32 { bb0(%0 : $Int32, %1 : $UnsafeMutablePointer<Optional <UnsafeMutablePointer<Int8>>>): %2 = integer_literal $Builtin.Int32, 0 // user: %3 %3 =

    3.2K20编辑于 2022-09-23
  • 来自专栏家劲

    iOS 开发之路(AES/DES加密实现) 三

    count: Int(dataLength) + 8) let bufferPointer = bufferData.withUnsafeMutableBytes { (bytes: UnsafeMutablePointer <UInt8>) -> UnsafeMutablePointer<UInt8> in return bytes } let bufferLength

    1.5K40发布于 2019-09-19
  • 来自专栏各类技术文章~

    Swift - 实例对象调用协议方法优先级分析/ witness_methos witness_table分析

    sil_global hidden @main.object2 : main.YRTeach : $YRTeach // main sil @main : $@convention(c) (Int32, UnsafeMutablePointer <Optional<UnsafeMutablePointer<Int8>>>) -> Int32 { bb0(%0 : $Int32, %1 : $UnsafeMutablePointer<Optional <UnsafeMutablePointer<Int8>>>): alloc_global @main.object1 : main.YRProtocol // id: %2 %3 = global_addr

    44200编辑于 2021-12-11
  • 来自专栏全栈程序员必看

    flutter byte(Unit8List) 转 ios Uint8[] 转 c语言char*

    将Uint8 (ios的byte)转成c语言用的char[]数组指针,(可能有更好的转换方法,但是此方法也可行) var pointer = UnsafeMutablePointer<UInt8>.allocate 用C语言加密后 获取到指针,将指针转换成ios平台的Data //加密结果接收的指针 let resoultPointer = UnsafeMutablePointer<UInt8>.allocate(

    2.2K20编辑于 2022-09-29
  • 来自专栏Swift社区

    Swift 中的反射 Mirror

    >, outFreeFunc: UnsafeMutablePointer<NameFreeFunc? >, outFreeFunc: UnsafeMutablePointer<NameFreeFunc? >, outFreeFunc: UnsafeMutablePointer<NameFreeFunc? >, // outFreeFunc: UnsafeMutablePointer<NameFreeFunc? 仿写代码如下: struct StructMetadata{ var kind: Int var Descriptor: UnsafeMutablePointer<StructDescriptor

    6K10发布于 2021-11-26
  • 来自专栏酷酷的哀殿

    Swift 的 MemoryLayout 是如何工作的(1)

    Swift import SwiftShims func getSize() -> Int // main sil [ossa] @main : $@convention(c) (Int32, UnsafeMutablePointer <Optional<UnsafeMutablePointer<Int8>>>) -> Int32 { bb0(%0 : $Int32, %1 : $UnsafeMutablePointer<Optional <UnsafeMutablePointer<Int8>>>): %2 = integer_literal $Builtin.Int32, 0 // user: %3 %3 =

    1.5K51发布于 2020-10-26
  • 来自专栏音视频直播技术专家

    iOS下 AAC 音频编码

    inInputDataProc: AudioConverterComplexInputDataProc, inInputDataProcUserData: UnsafeMutablePointer , ioOutputDataPacketSize: UnsafeMutablePointer<UInt32>, outOutputData: UnsafeMutablePointer

    2.5K41发布于 2020-04-02
  • 来自专栏小黑娃Henry

    swift底层探索 09 - Block捕获外界变量原理swift底层探索 09 - Block捕获外界变量原理

    runningTotal } return incrementer } let makeInc = VoidIntFun(f: makeIncrementer()) let ptr = UnsafeMutablePointer

    94310发布于 2021-08-09
  • 来自专栏音视频直播技术专家

    iOS下解码AAC并播放

    inInputDataProc: AudioConverterComplexInputDataProc, inInputDataProcUserData: UnsafeMutablePointer , ioOutputDataPacketSize: UnsafeMutablePointer<UInt32>, outOutputData: UnsafeMutablePointer

    3.9K21发布于 2020-04-01
  • 来自专栏sweet_iOS

    AVFoundation框架解析看这里(7)- AVAssetImageGenerator

    生成图片的指定时间 * actualTime: 生成图片的精确时间 */ open func copyCGImage(at requestedTime: CMTime, actualTime: UnsafeMutablePointer

    1.6K30发布于 2020-12-23
  • 来自专栏Swift社区

    Swift 周报 第十二期

    UnsafeMutablePointer 系列中的类型通常需要手动管理内存分配,包括管理其初始化状态。但是,并非该系列中的每个相关类型都具有一定的功能来管理内存的初始化状态。 分配后涉及的状态如下: 没有绑定和没有初始化(从 UnsafeMutableRawPointer.allocate() 返回) 绑定到类型,没有初始化(从 UnsafeMutablePointer<T> 我们打算完善该系列中每个相关成员的初始化功能:UnsafeMutablePointer、UnsafeMutableRawPointer、UnsafeMutableBufferPointer、UnsafeMutableRawBufferPointer

    3.3K10编辑于 2022-12-12
  • 来自专栏iOS小生活

    Swift进阶五——集合类之Array

    首先会判断传入的值是否是在数组的索引范围之内,接着会通过firstElementAddress获取到第一个元素的指针 UnsafeMutablePointer的下标操作 ? Array的下标操作最终会转到Buffer的getElement方法,Buffer的getElement方法又会转到UnsafeMutablePointer的下标操作,UnsafeMutablePointer

    1.7K31发布于 2020-12-29
  • 来自专栏学海无涯

    Swift编译之SIL(Swift Intermediate Language)

    Person { func drink() } // 使用sil指令定义一个名为main的函数,程序的入口点 // main sil @main: $@convention(c) (Int32, UnsafeMutablePointer <Optional<UnsafeMutablePointer<Int8>>>) -> Int32 { // 定义基本块bb0,它接受两个参数,一个是Int32,另一个是UnsafeMutablePointer <Optional<UnsafeMutablePointer<Int8>>> bb0(%0: $Int32, %1: $UnsafeMutablePointer<Optional<UnsafeMutablePointer

    63941编辑于 2023-11-21
  • 来自专栏音视频直播技术专家

    iOS下WebRTC视频编码

    compressionSessionOut: UnsafeMutablePointer<VTCompressionSession> //compression session的返回值。 infoFlagsOut: UnsafeMutablePointer<VTEncodeInfoFlags> //不知道啥作用 ) -> OSStatus //返回的状态值 参数详细介绍: session

    3K10发布于 2020-04-02
  • 来自专栏joealzhou

    iOS runtime swift swizzling

    static let runOnce: Void = { let typeCount = Int(objc_getClassList(nil, 0)) let types = UnsafeMutablePointer

    1.7K21发布于 2019-08-23
领券