मैं एक वेनिला आईपैड ही दृश्य अनुप्रयोग के viewDidLoad समारोह में निम्न कोड चल रहा हूँ:एनएसएलओजी कभी-कभी यूकोड वर्णों के लिए ऑक्टल प्रिंट क्यों करता है?
/*
* Print the string. A lot.
*/
for (int i = 0; i < 300; i++) {
NSLog(@"%d\n", i);
NSLog(@"⊢ ⊣ ⊥ ⊻ ⊼ ⊂ ⊃ ⊑ ⊒ \n");
}
उत्पादन इस तरह दिखता है:
2013-02-04 20:17:49.718 testplay[59585:c07] 228
2013-02-04 20:17:49.718 testplay[59585:c07] ⊢ ⊣ ⊥ ⊻ ⊼ ⊂ ⊃ ⊑ ⊒
2013-02-04 20:17:49.719 testplay[59585:c07] 229
2013-02-04 20:17:49.719 testplay[59585:c07] ⊢ ⊣ ⊥ ⊻ ⊼ ⊂ ⊃ ⊑ ⊒
2013-02-04 20:17:49.719 testplay[59585:c07] 230
2013-02-04 20:17:49.720 testplay[59585:c07] ⊢ ⊣ ⊥ ⊻ ⊼ ⊂ ⊃ ⊑ ⊒
2013-02-04 20:17:49.720 testplay[59585:c07] 231
2013-02-04 20:17:49.720 testplay[59585:c07] ⊢ ⊣ ⊥ ⊻ ⊼ ⊂ ⊃ \342\212\221 ⊒
2013-02-04 20:17:49.723 testplay[59585:c07] 232
2013-02-04 20:17:49.724 testplay[59585:c07] ⊢ ⊣ ⊥ ⊻ ⊼ ⊂ ⊃ ⊑ ⊒
अष्टाधारी एक ही चरित्र पर लगभग हमेशा होता है और हिचकी प्रति रन लगभग 3 गुना यादृच्छिक रूप से होती है।
जबकि यह NSLog() में अपेक्षाकृत हानिकारक है, यह दर्शाता है कि यूनिकोड वर्णों को कुछ स्तर पर अनियमित रूप से निपटाया जा सकता है। अगर इस व्यवहार या कुछ संसाधनों का इतिहास है तो मैं देख सकता हूं कि यह बहुत अच्छा होगा।
[अनुपूरक: इस समस्या को पार करने के संदर्भ में हटाया गया संदर्भ। समझना क्यों और कैसे NSLog यूनिकोड वर्ण का विकृत पढ़ने हो जाता है मुझे आशा है यहाँ]
एनएसएलओजी व्यवहार दिलचस्प है (और पुनरुत्पादित)। हालांकि तुलनात्मक पुनरावृत्तियों के लिए कोड को बदलना विसंगतिपूर्ण तारों का कारण नहीं बनता है। यह उपयोगी होगा यदि आपने तुलनात्मक विधि पोस्ट की है जो वास्तव में आपको समस्याएं उत्पन्न करती है ('तुलना करें: ',' isEqualToString: ',' तुलना करें: विकल्प: ', आदि) –