मैं हाल ही में मेरे कोड में कुछ अजीब पर ठोकर खाई में एक आलसी गुण में से स्वयं को संदर्भित नहीं कर सकता हूँ, मैं कुछ दिनों के लिए एक ही परियोजना में प्रोग्रामिंग है, लेकिन अचानक मैं इस के साथ एक आलसी संपत्ति बनाने की कोशिश की कोड:तेज
import UIKit
class CategoryViewController: UICollectionViewController {
lazy var searchController: UISearchController = {
let searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.frame = CGRect(x: 0, y: 0, width: CGRectGetWidth(self.collectionView.frame), height: 44)
return searchController
}()
}
अब हर बार जब मैं के साथ से स्वयं को संदर्भित करने के आलसी ब्लॉक में कोशिश यह इस का उत्पादन:
self.(<#NSObject#>)
और अन्य गुण में से कोई भी उपयोग नहीं कर सकते।
तो मैं कड़ी मेहनत से कोड करने की कोशिश उन्हें यह पैदा करता है:
UICollectionView? does not have a member named 'frame'
और प्रदर्शित करता है इसके बाद के संस्करण कोड:
Extra argument 'width' in call
मैं पहले से ही कोड के पुनर्लेखन के लिए और व्युत्पन्न डेटा को नष्ट करने, फिर से निर्माण करने की कोशिश की लेकिन त्रुटि बनी रहती है। ऐसा कोई विचार है कि ऐसा क्यों हो सकता है?
मुझे लगता है कि आप optionals को संदेश भेज सकते हैं, लेकिन जब तक आप इसे खोलने –
@ DánielNagy मैं क्या मतलब है कि आप उनके गुणों नहीं मिल सकता है आप केवल (जैसे विशेष वैकल्पिक 'map' के रूप में) Optionals के लिए वैकल्पिक संदेश भेज सकते हैं, और आप ऐसा करने के लिए कोई कारण नहीं करेंगे। और एक वैकल्पिक के पास कोई गुण नहीं है। यह उस चीज के अंदर लपेटा गया है जिसमें गुण हैं; यही कारण है कि आपको इसे खोलना है! – matt
@ DánielNagy आप समझ में नहीं आता है, तो क्या एक वैकल्पिक है, मेरा उत्तर यहाँ देखें: http://stackoverflow.com/a/27370841/341994 – matt