菜鸟教程小白 发表于 2022-12-11 20:05:30

ios - 为什么 NumberFormatter 的字符串(从 :) return an optional?


                                            <p><p> <a href="https://developer.apple.com/documentation/foundation/numberformatter/1418046-string" rel="noreferrer noopener nofollow">Documentation link</a> </p>

<p>为什么 <code>NumberFormatter</code> 函数 <code>func string(from number: NSNumber) -> String?</code> 返回的是 <code>String?</code> 而不是 <code>字符串</code>? <code>NumberFormatter</code> 是否有特定的输入或状态,该函数可以返回 nil?有时我听说这些不太理想的返回类型来自 Objective-C 保留文件,这是其中一种情况吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><em>只是为了好玩:</em>这是一个(构建的,非真实世界的)示例,其中
<code>string(from:)</code> 实际上返回 <code>nil</code>:</p>

<pre><code>let num = NSNumber(bytes: UnsafeRawPointer(bitPattern: 1)!, objCType: &#34;v&#34;)
print(num) // &lt;&gt;

let fmt = NumberFormatter()
fmt.numberStyle = .decimal
let str = fmt.string(from: num)

print(str as Any) // nil
</code></pre>

<p>原因是这个<code>num</code>不代表数字:它是被创建的
使用 <code>NSValue</code> (从它继承)初始化程序
<a href="https://developer.apple.com/documentation/foundation/nsvalue/1411621-init" rel="noreferrer noopener nofollow"><code>init(bytes:objCType:)</code></a>具有表示 <code>void</code> 的值。 ("v"是 <code>void</code> 的 <a href="https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html" rel="noreferrer noopener nofollow">type encoding</a>,
指针值无关紧要。)</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 为什么 NumberFormatter 的字符串(从 :) return an optional?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/50067233/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/50067233/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 为什么 NumberFormatter 的字符串(从 :) return an optional?