草庐IT

unsafe-pointers

全部标签

ios - 在 Swift 2.0 中创建 CMSampleBuffer 的副本

以前有人问过这个问题,但自从有人问起之后,Swift中肯定发生了一些变化。我正在尝试存储从AVCaptureSession返回的CMSampleBuffer对象,以便稍后处理。经过一些实验,我发现AVCaptureSession必须重用其CMSampleBuffer引用。当我尝试保持超过15个时,session挂起。所以我想我会制作样本缓冲区的副本。但我似乎无法让它发挥作用。这是我写的:varallocator:Unmanaged!=CFAllocatorGetDefault()varbufferCopy:UnsafeMutablePointerleterr=CMSampleBuffe

ios - 警告 "Pointer is missing a nullability type specifier"的原因是什么?

+(UIColor*)getColorWithHexa(NSString*)hexString;:这是我类(class)中的一个方法定义。它引起了警告。出现类似警告的原因是什么?如何解决?我返回一个UIColor对象,而该问题与block相关,在注释中给出。所以,这很有帮助。 最佳答案 NS_ASSUME_NONNULL_BEGIN/END:AnnotatinganypointerinanObjective-Cheaderfilecausesthecompilertoexpectannotationsfortheentirefile

ios - Xcode 调试/仪器 : See all pointers to an object

我刚开始从事一个相对复杂的项目,并且发现了一个错误。当用户注销时,ViewController仍然分配在登录ViewController后面。他们继续响应旋转事件等。我已将Controller设置为nil注销时,但它仍在响应,这表明其他一些对象仍然有指向它的指针。(该项目启用了ARC。)ARC前我可能会solvethisbyoverridingretain:-(id)retain{//Breakheretoseewhoisretainingme.return[superretain];}如何使用Xcode调试工具选择一个对象并列出指向它的所有其他对象?有没有比简单地搜索所有代码更好的方

tcp - netfilter 传入 Hook : struct tcphdr -> dest pointer does not point to the correct location?

我们正在尝试为linux内核实现一个NAT模块。面临的问题是,对于传入Hook处的TCP数据包,预期指向目标端口的指针并没有这样做。传出钩子(Hook)的片段:unsignedintincoming_hook(unsignedinthooknum,structsk_buff*skb,conststructnet_device*in,conststructnet_device*out,int(*okfn)(structsk_buff*)){structiphdr*iph;structtcphdr*tcph;unsignedintdst_addr;unsignedshortdst_port

ios - Swift 3 中的不安全指针

我知道这个问题被问过好几次了,但我真的不明白。我想从蓝牙设备(miband)中提取一个值。在swift2中,它是这样工作的:funcperipheral(_peripheral:CBPeripheral,didUpdateValueForcharacteristic:CBCharacteristic,error:Error?){ifcharacteristic.uuid.uuidString=="FF06"{letvalue=UnsafePointer(characteristic.value!.bytes).memoryprint("Steps:\(value)")}}但在swift

swift - 在没有 unsafeBitCast 的情况下将 UnsafeMutablePointer 值分配给 UnsafePointer

我正在使用一个CAPI,该API定义了一个包含constchar*的结构和一个返回char*的函数,我正在尝试找到执行赋值的最佳方法。有没有办法不使用unsafeBitCast来做到这一点?如果我不进行转换,则会出现此错误:Cannotassignvalueoftype'UnsafeMutablePointer'(aka'UnsafeMutablePointer')totype'UnsafePointer!'(aka'ImplicitlyUnwrappedOptional>')此外,下面使用pair()的pairPtr初始化是否会在堆栈上分配一对结构以初始化堆上分配的对,因为对于结构必

pointers - Swift:不能在数组中存储不安全的指针

我创建了一个小的结构来保存版本号。现在我搜索了一种紧凑的方法来将数字直接解析为结构的变量。我试图以这种方式实现它:structVersion{varmajor:Int=0varminor:Int=0varrevision:Int=0init(string:String){letcomponents=string.componentsSeparatedByString(".")if1...3~=components.count{vartargets=[&major,&minor,&revision]forindexin0...2{varscanner=NSScanner(string:c

swift - 我是否需要释放一个 UnsafeBufferPointer 或在缓冲区指针的起始内存位置使用的 UnsafePointer?

考虑thisextension在将NSData对象序列化为十六进制字符串的NSData上:extensionNSData{funcbase16EncodedString(uppercaseuppercase:Bool=false)->String{letbuffer=UnsafeBufferPointer(start:UnsafePointer(self.bytes),count:self.length)lethexFormat=uppercase?"X":"x"letformatString="%02\(hexFormat)"letbytesAsHexStrings=buffer.m

ios - 如何从 CGFloat 数组创建 CIVector?

我正在尝试在Swift中创建CICrossPolynomial过滤器类型。不过,我不确定如何创建语法来执行此操作。文档指定了一个具有float数组的CIVector?ACIVectorobjectwhosedisplaynameisRedCoefficients.Defaultvalue:[1000000000]Identity:[1000000000]但是我实际上如何声明这样一个CIVector?有一个具有此签名的构造函数CIVector(values:>,count:)但是当我尝试varfloatArr:Array=[1,0,0,0,0,0,0,0,0]varvector=CIVe

Swift:引用 ("pointer") 到集合

这可能是一个非常基本/愚蠢的问题:我如何在Swift中获取对集合的引用,以便对该引用的更改影响原始引用,反之亦然?因此,例如,如果我有以下代码:vara1=[Int]()vara2=a1a1.append(1)print(a2)我能得到一个“引用”(或者它在Swift中的任何名称)到a1吗?这样当我改变a1,a2反射(reflect)相同的变化,它最终显示“[1]”而不是“[]”?我想这与集合是主要类型有关,因此与其他对象的行为不同,但后来我不知道如何使用集合而不让它们一直被复制。更具体地说,在使用Dictionary>时,更新嵌套Dictionary内容的最佳方式是什么?同时最小化查