में एक विशिष्ट चेतावनी को दबाने के लिए कैसे मैं एक स्विफ्ट समारोह कुछ इस तरह कर रही है। वास्तव में कौन सी रेखाएं चिह्नित की गई हैं, उस लक्ष्य पर निर्भर करती है जिसका मैं निर्माण कर रहा हूं (उदाहरण के लिए आईफोन 5 बनाम 6; रोचक रूप से आईफोन 5 64-बिट मामले के लिए चेतावनी देता है जबकि आईफोन 6 32-बिट और डिफ़ॉल्ट के लिए दो चेतावनियां देता है)।स्विफ्ट
मुझे पता चला कि #pragma
के लिए स्विफ्ट बराबर // MARK:
है, इसलिए मैं
// MARK: clang diagnostic push
// MARK: clang diagnostic ignored "-Wall"
func f() -> Int {
switch (__WORDSIZE) {
case 32: return 1
case 64: return 2
default: return 0
}
}
// MARK: clang diagnostic pop
कोशिश की, लेकिन चेतावनी बने हुए हैं, MARK
रों कोई असर नहीं लग रहे हैं।
समाधान के लिए, मैं अब कुछ इस तरह है:
#if arch(arm) || arch(i386)
return 1
#else
#if arch(arm64) || arch(x86_64)
return 2
#else
return 0
#endif
#endif
- लेकिन निश्चित रूप से यह एक ही नहीं है। कोई संकेत ...?
वर्तमान में, आप स्विफ्ट कोड में विशिष्ट चेतावनियों को दबा नहीं सकते हैं (उदाहरण के लिए http://stackoverflow.com/questions/31540446/how-to-silence-a-warning-in-swift-2-0) देखें। एक कामकाज के रूप में, आप इसके बजाय 'sizeof (Int.self)' पर स्विच कर सकते हैं (जो 4 या 8 है)। - यह जानना दिलचस्प होगा * क्यों * आपको इस फ़ंक्शन की आवश्यकता है। –
धन्यवाद, आपका समाधान काम करता है। कोड के लिए, यहां देखें: http://stackoverflow.com/questions/24007129/how-does-one-generate-a-random-number-in-apples-swift-language - jstn द्वारा उत्तर। – Stefan
मैंने इसे पहले नहीं देखा था, लेकिन यहां http://stackoverflow.com/a/31429991/1187415 एक (काफी समान) समाधान है जिसे शब्द आकार पर स्विच की आवश्यकता नहीं है। –