<div dir="ltr"><p>Not quite:</p>
<blockquote>
<p>Swift’s policy on memory allocation failure is that fixed-size object allocation is considered to be a runtime failure if it cannot be handled. OTOH, APIs that can take a variable and arbitrarily large amount to allocate should be failable. NSData falls into the later category. </p></blockquote>
<p><a href="http://article.gmane.org/gmane.comp.lang.swift.user/1709">Source</a></p>
<br><br><div class="gmail_quote"><div dir="ltr">On Sun, Jun 19, 2016 at 10:00 AM Karl &lt;<a href="mailto:razielim@gmail.com">razielim@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">As I understand it, that’s not an error in the ‘try’ sense of the word. If that failure happens, it’s a catastrophic issue which should bring down the application.<div><br></div><div>So the initialiser shouldn’t be failable; you’re right. File a bug at <a href="http://bugs.swift.org" target="_blank">bugs.swift.org</a>.</div></div><div style="word-wrap:break-word"><div><br></div><div>Karl</div></div><div style="word-wrap:break-word"><div><br><div><blockquote type="cite"><div>On 18 Jun 2016, at 06:06, Saagar Jha via swift-users &lt;<a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a>&gt; wrote:</div><br><div><div dir="ltr"><p><a href="http://article.gmane.org/gmane.comp.lang.swift.user/1702" target="_blank">This</a> might be relavant. Basically, <code>Data</code>’s <code>init</code> will fail if memory can’t be allocated for it.</p>
<br><br><div class="gmail_quote"><div dir="ltr">On Fri, Jun 17, 2016 at 11:38 AM Adrian Zubarev via swift-users &lt;<a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><p>Hello there, I’m trying to optimize my code and reduce copying from different buffers into a new one.</p><p>I thought I just create a Data value with enough capacity and write directly into it. My problem is that <code>Data.init?(capacity:)</code> can fail, but why and when?</p><p>Can someone explain this behavior to me?</p><p>I’m sending data via TCP sockets and when <code>recn</code> function write directly into a <code>Data</code> struct. </p><div><br></div></div><div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px"><br></div><br><div><div style="font-family:helvetica,arial;font-size:13px">-- <br>Adrian Zubarev<br>Sent with Airmail</div></div></div><div><div><br></div></div></div>_______________________________________________<br>
swift-users mailing list<br>
<a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-users</a><br>
</blockquote></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr">-Saagar Jha</div></div>
_______________________________________________<br>swift-users mailing list<br><a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-users" target="_blank">https://lists.swift.org/mailman/listinfo/swift-users</a><br></div></blockquote></div><br></div></div></blockquote></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr">-Saagar Jha</div></div>