2017-02-18 9 views
5

क्षमा करें अगर यह एक डुप्लिकेट है, लेकिन मैंने ऐप्पल के String Format Specifiers, और IEEE printf spec सहित चारों ओर खोज करने की कोशिश की लेकिन इस सरल के लिए उत्तर नहीं मिला।स्ट्रिंग फॉर्मेटर?

मैं स्ट्रिंग स्थिरांक के लिए स्ट्रिंग फॉर्मेटर के साथ os_log संदेश मुद्रित करना चाहता हूं। कुछ सदृश करने के लिए:

printf("Currently at processing state: %s\n", "reading in"); 
सी में

हालांकि, जब मैं स्विफ्ट में कुछ इस तरह की कोशिश की:

os_log("Currently at processing state: %s", log: .default, type: .info, "reading in") 

यह बस बाहर कुछ भी नहीं छपी।

स्ट्रिंग प्रारूप विनिर्देशक का उपयोग करके मैं स्ट्रिंग स्थिरांक कैसे मुद्रित करूं? मुझे यकीन नहीं है कि इसे NSLog के साथ कैसे करें।

संपादित करें: os_log को StaticString की आवश्यकता है, इसलिए यह "Something \(Expr) Something else" जैसे print() जैसा कुछ नहीं कर सकता है। आप अभी भी संख्या चर मुद्रित करने के लिए स्ट्रिंग स्वरूपण का उपयोग कर सकते हैं। मैं सोच रहा हूं कि इस मामले में स्ट्रिंग स्थिरांक/चर कैसे मुद्रित करें।

संपादित 2: ऐप्पल वास्तव में इस विषय पर manual page पर चर्चा कर रहा है, जिसे मैंने याद किया है क्योंकि यह केवल उद्देश्य-सी एपीआई संस्करण में चर्चा की गई है।

+0

"कुछ \\ (कोई तेज़ अभिव्यक्ति) कुछ और" –

उत्तर

5

(यदि इससे आपके प्रश्न कृपया यह जवाब के रूप में चिह्नित हल) os_log आदमी पृष्ठ से:

तुम भी "% @" फॉर्मेट स्पेसिफायर Obj सी साथ प्रयोग के लिए उपयोग कर सकते हैं/सीएफ/स्विफ्ट

वस्तुओं आपके मामले में

import os.log 

os_log("Currently at processing state: %@", log: .default, type: .info, "reading in") 

काम करता है क्योंकि स्विफ्ट स्ट्रिंग को NSString पर परिवर्तनीय तर्क सूची पर ब्रिज किया गया है।

+0

बिल्कुल सही! धन्यवाद! – HuaTham

-2

यह काम करेगा:

print("Currently at processing state: \(readingin)") 

तो तुम पैरामीटर आप readingin के लिए प्रिंट करना चाहते हैं डाल दिया।

+0

मैं 'os_log' के लिए एक उत्तर ढूंढ रहा हूं जिसके लिए एक चर के मूल्य को मुद्रित करने के लिए 'स्टेटिकस्ट्रिंग' के लिए स्ट्रिंग प्रारूप विनिर्देशों की आवश्यकता है। – HuaTham

संबंधित मुद्दे