<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hi Ron.</div><div class=""><br class=""></div><div class="">Not sure if you just want to have an array of Strings, and are working entirely in Swift. If so, you can just do</div><div class=""><br class=""></div><div class=""><div class=""><div class="" style="font-family: sans-serif;"><div class=""><p dir="auto" class="">func haveSwiftFun(data :[String]?) {</p><p dir="auto" class="">&nbsp; &nbsp; for string in data {</p><div class="">&nbsp; &nbsp; &nbsp; &nbsp; print(string)</div><div class="">&nbsp; &nbsp; }</div><p dir="auto" class="">}</p></div></div></div></div><div class="">If you’re looking to interface Swift with a C function that takes&nbsp;const char * const *, that is covered in this thread:</div><div class=""><br class=""></div><div class=""><a href="https://lists.swift.org/pipermail/swift-users/Week-of-Mon-20160815/002956.html" class="">https://lists.swift.org/pipermail/swift-users/Week-of-Mon-20160815/002956.html</a></div><div class=""><br class=""></div><div class="">-Kenny</div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On Sep 19, 2016, at 12:19, Ron Olson via swift-users &lt;<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">


<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8" class="">

<div class="">
<div style="font-family:sans-serif" class=""><div style="white-space:normal" class=""><p dir="auto" class="">Hi all-</p><p dir="auto" class="">So I've been working on this for hours and I'm just stuck. In C I'd write something like:</p><p dir="auto" class="">const char* a_string_array[] = {"aloha", "world", "from beautiful Waikiki Beach"};<br class="">
haveFun(a_string_array);</p><p dir="auto" class="">and haveFun is:</p><p dir="auto" class="">void haveFun(const char** data) {<br class="">
    printf("%s\n", data[0]);<br class="">
    printf("%s\n", data[1]);<br class="">
    printf("%s\n", data[2]);<br class="">
}</p><p dir="auto" class="">So I'm trying to do something similar in Swift 3-REL (working in Linux) and the best I've been able to come up with is:</p><p dir="auto" class="">func haveSwiftFun(data: Optional&lt;UnsafeMutablePointer&lt;Optional&lt;UnsafePointer&lt;Int8&gt;&gt;&gt;&gt;, count:UInt32) {<br class="">
 for _ in 0...count {<br class="">
          if let parm = params?.pointee! {<br class="">
              let tempBuf = String(cString: (UnsafePointer&lt;Int8&gt;(parm)!))<br class="">
               print(tempBuf)<br class="">
          }<br class="">
      }<br class="">
}</p><p dir="auto" class="">But I'm not actually iterating through the array, I'm just getting the first element count times. </p><p dir="auto" class="">I've been all over the usual places on the web (SO, Apple Docs, etc.), and have cobbled together something like:</p><p dir="auto" class="">let buffer = UnsafeBufferPointer(start:(params?.pointee!)!, count:count)<br class="">
let anArray = Array(buffer)</p><p dir="auto" class="">which gives me an [Int8], but I can't figure out how to get the actual char array from the anArray elements, with the hope of turning each element into its own String.</p><p dir="auto" class="">I'm feeling I've run off the rails here and am hoping somebody might have some info on how to properly deal with working with a const char** in Swift 3. I'm sure/not sure it'll be an obvious 'ah ha!' moment, but that moment seems very very far away. :(</p><p dir="auto" class="">Thanks for any help,</p><p dir="auto" class="">Ron </p>
</div>
</div>
</div>

_______________________________________________<br class="">swift-users mailing list<br class=""><a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-users<br class=""></div></blockquote></div><br class=""></body></html>