साक्षात्कार प्रश्न मध्य / वरिष्ठ आईओएस डेवलपर

हम सभी साक्षात्कार के लिए गए / गए। हर बार जब हम अगले साक्षात्कार की तैयारी करते हैं, तो हम मुख्य विषयों को देखते हैं, उन प्रश्नों को याद करते हैं जो हमसे पिछली बार पूछे गए थे, या वे प्रश्न जो हमने खुद से पूछे थे। नीचे मैं मुख्य प्रश्नों को पेश करना चाहता हूं जो अक्सर (व्यक्तिगत अनुभव के आधार पर) मध्यम / वरिष्ठ आईओएस डेवलपर की स्थिति के लिए एक साक्षात्कार से प्राप्त किया जा सकता है। इसलिए बोलने के लिए, धोखा देने वाली चादर। उसी समय, आप प्लेटफ़ॉर्म के ज्ञान के अपने स्तर की जांच कर सकते हैं।

सामान्य:
- एक अमूर्त वर्ग एक इंटरफेस से कैसे अलग है?
- एमवीसी पैटर्न के बारे में बताएं। एक निष्क्रिय मॉडल और एक सक्रिय के बीच क्या अंतर है?
- एआरसी में और गैर-एआरसी में सिंगलटन का कार्यान्वयन?
- क्या अन्य पैटर्न आप जानते हैं?
- कोड लिखिए जो C ++ में एक लाइन को दर्शाती है।

नेटवर्किंग और मल्टीथ्रेडिंग:
- गतिरोध क्या है?
- लाइवलॉक क्या है?
- सेमाफोर क्या है?
- म्यूटेक्स क्या है?
- असिंक्रोन्टी बनाम मल्टीथ्रेडिंग। अंतर क्या हैं?
- तुल्यकालिक और अतुल्यकालिक कनेक्शन के फायदे और नुकसान?
- http, tcp का क्या अर्थ है?
- HEAD, GET, POST, PUT में क्या अंतर हैं?
- आईओएस में किन तकनीकों का उपयोग स्ट्रीम के साथ काम करने के लिए किया जा सकता है। फायदे और नुकसान।
- dispatch_async और dispatch_sync में क्या अंतर है?
- क्या "हैलो वर्ल्ड" डिबगर में प्रदर्शित किया जाएगा? क्यों?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { dispatch_sync(dispatch_get_main_queue(), ^{ NSLog(@"Hello world"); }); /* Another implementation */ return YES; } 

- कंसोल में क्या प्रदर्शित किया जाएगा?
  NSObject *object = [NSObject new]; dispatch_async(dispatch_get_main_queue(), ^ { NSLog(@"A %d", [object retainCount]); dispatch_async(dispatch_get_main_queue(), ^ { NSLog(@"B %d", [object retainCount]); }); NSLog(@"C %d", [object retainCount]); }); NSLog(@"D %d", [object retainCount]); 

CoreData:
- कोर डेटा क्या है?
- किन मामलों में SQLite और कोर डेटा का उपयोग करना बेहतर है?
- प्रबंधित वस्तु प्रसंग क्या है?
- एक स्थायी स्टोर समन्वयक क्या है?
- विभिन्न धाराओं में कोर डेटा का उपयोग करते समय क्या बारीकियां हैं? थ्रेड्स के बीच डेटा सिंक्रनाइज़ कैसे करें?
- क्या NSFetchedResultsController का उपयोग किया गया है? क्यों?

ऑब्जेक्टिव-सी
- iOS में रूट क्लासेस क्या हैं? जड़ वर्ग किसके लिए हैं?
- एक आइसा पॉइंटर क्या है? इसके लिए क्या है?
- क्लास ऑब्जेक्ट में जिसको यह कहा जाता था, उसमें नहीं पाए जाने के बाद विधि का क्या होता है?
- एक श्रेणी के विस्तार (विस्तार, अनाम श्रेणी) से कैसे भिन्न होता है?
- क्या आइवर को श्रेणी में जोड़ा जा सकता है?
- श्रेणी का उपयोग करना कब बेहतर होता है, और वंशानुक्रम कब होता है?
- डेलिगेट्स और नोटिफिकेशन का उपयोग करने में क्या अंतर है?
- iOS में मैनुअल मेमोरी मैनेजमेंट कैसा है?
- ऑटोरेलिज़ बनाम रिलीज़?
- एआरसी का क्या अर्थ है?
- क्या होगा यदि परियोजना एआरसी का उपयोग करके लिखी गई है, और आपको एआरसी के बिना लिखे गए तीसरे पक्ष के पुस्तकालय की कक्षाओं का उपयोग करने की आवश्यकता है?
- कमजोर बनाम असाइन, मजबूत बनाम कॉपी?
- परमाणु बनाम गैर-परमाणु। अंतर क्या हैं? गैर-एआरसी कोड में परमाणु / गैर-परमाणु सेटर को मैन्युअल रूप से ओवरराइड कैसे करें?
- सभी संपत्तियों को मजबूत / बनाए रखने वाले प्रतिनिधियों को क्यों संदर्भित किया जाता है। :)))
- एक ऑटोरेलिस पूल क्या है?
- मैं C ++ में ऑटोरिलिज़ पूल कैसे लागू कर सकता हूं?
- NSSet और NSArray में क्या अंतर है? NSSet में और NSArray में कौन से ऑपरेशन जल्दी होते हैं?
- औपचारिक बनाम अनौपचारिक प्रोटोकॉल।
- क्या उद्देश्य-सी में कोई निजी या संरक्षित विधियां हैं?
- एकाधिक वंशानुक्रम की नकल कैसे करें?
- केवीओ क्या है? मुझे इसका उपयोग कब करना चाहिए?
- केवीसी क्या है? मुझे इसका उपयोग कब करना चाहिए?
- ब्लॉक क्या हैं? उनकी आवश्यकता क्यों है?
- आपको एक ब्लॉक की प्रतिलिपि कब बनाने की आवश्यकता है? इसके लिए कौन जिम्मेदार है: कॉलर या रिलीवर?
- नामित इनिशियलाइज़र क्या है?
- इस कोड में क्या गलत है? हमें इनिशियलाइज़र की आवश्यकता क्यों है?
 [[[SomeClass alloc] init] init]; 

- लूप के माध्यम से पुनरावृत्ति के दौरान किसी ऑब्जेक्ट को कैसे हटाया जाए?
- क्या टाइमर काम करेगा? क्यों?
 void startTimer(void *threadId) { [NSTimer scheduleTimerWithTimeInterval:10.0f target:aTarget selector:@selector(tick: ) userInfo:nil repeats:NO]; } pthread_create(&thread, NULL, startTimer, (void *)t); 

- किस विधि को कहा जाएगा: वर्ग ए या वर्ग बी? कोड को कैसे बदलें ताकि क्लास ए पद्धति को कहा जाए?
 @interface A : NSObject - (void)someMethod; @end @implementation A - (void)someMethod { NSLog(@"This is class A"); } @end @interface B : A @end @implementation B - (void)someMethod { NSLog(@"This is class B"); } @end @interface C : NSObject @end @implementation C - (void)method { A *a = [B new]; [a someMethod]; } @end 

- किन मामलों में मजबूत का उपयोग करना बेहतर है, और एनएसएसट्रिंग के लिए किस कॉपी में? क्यों?
 @property (nonatomic, strong) NSString *someString; @property (nonatomic, copy) NSString *anotherString; 

- कंसोल में क्या प्रदर्शित किया जाएगा? क्यों?
 - (BOOL)objectsCount { NSMutableArray *array = [NSMutableArray new]; for (NSInteger i = 0; i < 1024; i++) { [array addObject:[NSNumber numberWithInt:i]]; } return array.count; } - (void)someMethod { if ([self objectsCount]) { NSLog(@"has objects"); } else { NSLog(@"no objects"); } } 

UIKit:
- रन लूप क्या है?
- फ्रेम और सीमा के बीच अंतर क्या है?
- प्रत्युत्तर श्रृंखला क्या है?
- अगर मैं performSelector कहता हूं: withObject: afterDelay: - क्या मैसेज रिटेन करने पर ऑब्जेक्ट भेजा जाएगा?
- आवेदन की शर्तें क्या हैं?
- पुश सूचनाएँ कैसे काम करती हैं?
- एक UIViewController का जीवन चक्र?
- मेमोरी चेतावनी का प्रसंस्करण कैसे होता है? क्या प्रसंस्करण iOS के संस्करण पर निर्भर करता है?
- UIImage को डिस्क से (कैश से) लोड करने का सबसे अच्छा तरीका क्या है?
- कौन सा कंटेंट डॉक्यूमेंट्स में बेस्ट है और कौन सा कैश में स्टोर किया गया है?

और आपने इंटरव्यू में क्या सवाल पूछे?
PS इस सामग्री की तैयारी में सहायता के लिए वसीली मिरोनचुक को धन्यवाद।

Source: https://habr.com/ru/post/In198612/


All Articles