从ObjC获取UnsafeBufferPointer

时间:2016-11-15 13:13:20

标签: objective-c swift pointers

在我的ObjC-Swift桥接中,我目前使用

if txt_line.strip():
   # line is not empty or just blanks
   toks = txt_line.split(":")
   if len(toks)==2:
       # unpack safely
       k,v = toks
   else:
       print("unable to parse {}".format(txt_line))

在Swift中创建一个数组,如

- (double*)vector {
  return (double*)self.ndArray->vector();
}

- (long) size {
  return self.ndArray->size();
}

是否有可能直接从ObjC获得这个

let p = vector.vector()
let s = vector.size()
let a = Array<Double>(UnsafeBufferPointer(start: p, count: s))

1 个答案:

答案 0 :(得分:2)

C指针不包含有关指向内存区域大小的任何信息,因此您始终必须同时传递指针和计数 从(目标 - )C到斯威夫特。您可以传递包含两者的struct 指针和计数以保存函数调用。