मैं एक आवेदन पत्र में कुछ 3 डी स्पर्श को शामिल करने की कोशिश कर रहा हूँ और मैं कहाँ forceTouchCapability
जांच viewWillAppear/viewDidAppear
में viewDidLoad
पर nil
लेकिन नहीं लौटा रहा है एक अजीब मुद्दा आई है forceTouchCapability।लौटने
मैं में के रूप में निम्नलिखित ध्यान रखें कि यह केवल उसी दृश्य नियंत्रक पर traitCollection
संपत्ति forceTouchCapability
का जवाब सत्यापित करने के लिए 9+ iOS पर तो मैं जोड़ दिया है चेक की सुविधा उपलब्ध है कर रहा हूँ:
- (void)loadView {
self.view = [[MyView alloc] init];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Checking the force touch availability here
if ([self.traitCollection respondsToSelector:@selector(forceTouchCapability)] &&
self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) {
// This won't get called because forceTouchCapability is returning nil
// which corresponds to UIForceTouchCapabilityUnknown
[self registerForPreviewingWithDelegate:self sourceView:self.view];
}
}
LLDB में if
बयान पर एक ब्रेकपाइंट, po [self.traitCollection forceTouchCapability]
रिटर्न में प्रवेश nil
जो UIForceTouchCapabilityUnknown
से मेल खाती है के साथ। हालांकि, traitCollection
ही nil
नहीं है।
UIForceTouchCapabilityUnknown के लिए प्रलेखन के अनुसार:
UIForceTouchCapabilityUnknown: The availability of 3D Touch is unknown. For example, if you create a view but have not yet added it to your app’s view hierarchy, the view’s trait collection has this value.
इस बिंदु से पदानुक्रम में जोड़े नहीं गए दृश्य है?
अगर कोई पहले इस समस्या का भी करना पड़ा है मैं उत्सुक हूँ और कैसे इस को हल करने के लिए? मैं इसे viewDidAppear
में जोड़ने से बचना चाहता हूं क्योंकि इसे काफी कुछ कहा जा सकता है।
यदि यह मदद करता है, मैं इस पर एक 6S आईओएस 9.1 पर चल रहा हूँ Xcode 7.2
आप कमाल के हैं, धन्यवाद! – ajfigueroa
@bpapa अच्छा समाधान। पीओ के बजाय पी के उपयोग की सिफारिश करने पर विचार करें। पी बस के अंदर लग रहा है, पो निष्पादन –