चाहे आप का उपयोग Any
या AnyObject
आपके इच्छित उपयोग पर निर्भर करता है:
अपने शब्दकोश केवल स्विफ्ट कोड के भीतर का उपयोग किया जाएगा, तो आप Any
का उपयोग करना चाहिए, क्योंकि आपके प्रकार (Int
, Double
, Float
, String
, Array
, और Dictionary
) ऑब्जेक्ट्स नहीं हैं।
यदि आप ऑब्जेक्टिव-सी रूटीन में अपना शब्दकोश पास करेंगे जो NSDictionary
की अपेक्षा करता है, तो आपको AnyObject
का उपयोग करना चाहिए।
जब आप import Foundation
या import UIKit
या import Cocoa
, यह [String: AnyObject]
के रूप में अपने सरणी घोषित करने के लिए संभव है, लेकिन इस मामले में स्विफ्ट NSString
के रूप में, NSNumber
के रूप में अपने Int
, Double
, Float
शाब्दिक इलाज है अपने String
रों, NSArray
के रूप में अपने Array
रों , और आपके शब्दकोश NSDictionary
के रूप में, जिनमें से सभी वस्तुएं हैं। AnyObject
का उपयोग करके एक शब्दकोष मान प्रकार के रूप में परिवर्तनीय है NSDictionary
, लेकिन Any
का उपयोग करने वाला कोई नहीं है।
ध्यान दें कि 'स्ट्रिंग',' ऐरे 'और' डिक्शनरी 'कक्षाएं नहीं हैं, इन उपयोगों के लिए कोई भी। – zaph
न ही इंट, डबल और फ्लोट हैं। – Teejay
हाँ लेकिन यह आमतौर पर स्पष्ट है। यह इतना स्पष्ट नहीं है कि 'एनएसएसटींग',' एनएसएआरएआरई 'और' एनएस डिक्शनरी 'कक्षाएं हैं, फिर भी इसी तरह के कार्यात्मक स्विफ्ट संस्करण कक्षाएं नहीं हैं और यह कई देवताओं की यात्रा करता है। – zaph