菜鸟教程小白 发表于 2022-12-13 05:41:27

ios - NSLocale 几乎是空的 - 属性在哪里?


                                            <p><p>我真的只是想知道用户是否将iPhone设置为12小时模式进行时间显示。</p>

<p><code>NSLocale</code> 类似乎在描述(以模糊、不具体的术语,没有任何示例或明显有用的方法)我所追求的。</p>

<p>所以我创建了一些 <code>NSLocale</code> 对象,如下所示:</p>

<pre><code>NSLocale *systemLocaleApparently = ;
NSLocale *currentLocaleWithLotsOfGoodies = ;
</code></pre>

<p>当我使用调试器或 <code>NSLog()</code> 检查这些对象时,我能得到的最好的结果是:</p>

<pre><code>&lt;CFLocale 0x1278e0 &gt;{type = system, identifier = &#39;&#39;}
</code></pre>

<p>当前语言环境中有一个 ID 字符串,但没有其他内容。</p>

<p>从文档中,我可以从语言环境中查找值,其中之一是 <code>NSCalendar</code> 对象。所以我把它拿回来看了一下,它告诉我它是“gregorian”。</p>

<p>所有这些显然对某人有用......但我真正想要的是一个很好的大字典,显示所有实际系统属性,主要是为了让我的 <code>NSDateFormatters</code> 不即使我已强制格式化程序使用 <code>en_US_POSIX</code> 语言环境和固定的 <code>setDate</code> 格式,但当用户选择 12 小时格式时,t 会继续爆炸。</p>

<p>(我敢肯定 <code>NSCalendarDate</code> 从来没有遇到过这些问题...)</p>

<p>希望我遗漏了一些明显(并且可能令人尴尬)明显的东西,但也许有人会与我分享。请:)</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这是判断用户是否将时间格式设置为 12 小时或 24 小时格式的一种方法:</p>

<pre><code>NSDateFormatter* formatter = [[ init] autorelease];
;
// Look for H (24-hour format) vs. h (12-hour format) in the date format.
NSString* dateFormat = ;
BOOL using24HourClock = .location == NSNotFound;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - NSLocale 几乎是空的 - 属性在哪里?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/1447196/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/1447196/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - NSLocale 几乎是空的 - 属性在哪里?