खोज…


वाक्य - विन्यास

  • - या + : विधि का प्रकार। उदाहरण या वर्ग?

  • (): जहाँ रिटर्न प्रकार जाता है। यदि आप कुछ भी वापस नहीं करना चाहते हैं, तो शून्य का उपयोग करें!

  • आगे विधि का नाम है। ऊंट का उपयोग करें और समझ को याद रखने के लिए नाम को आसान बनाएं।

  • यदि आपकी विधि को मापदंडों की आवश्यकता है, तो अब समय है! फ़ंक्शन के नाम के बाद पहला पैरामीटर इस तरह आता है :(type)parameterName । अन्य सभी मापदंडों को इस तरह से किया जाता है parameterLabel:(type)parameterName

  • आपकी विधि क्या करती है? यह सब यहाँ रखो, घुंघराले ब्रेसों में {}!

विधि मापदंडों

यदि आप किसी विधि में मानों को पास करना चाहते हैं जब इसे कहा जाता है, तो आप मापदंडों का उपयोग करते हैं:

- (int)addInt:(int)intOne toInt:(int)intTwo {
  return intOne + intTwo;
}

पेट ( : ) विधि नाम से पैरामीटर अलग करती है।

पैरामीटर प्रकार कोष्ठक (int)

पैरामीटर नाम पैरामीटर प्रकार के बाद जाता है।

एक मूल विधि बनाएं

यह एक मूल विधि बनाने के लिए है जो कंसोल में 'हैलो वर्ल्ड' को लॉग करता है:

- (void)hello {
  NSLog(@"Hello World");
}

शुरुआत में - इस विधि को उदाहरण विधि के रूप में दर्शाता है।

(void) रिटर्न प्रकार को दर्शाता है। यह विधि कुछ भी वापस नहीं करती है, इसलिए आप void प्रवेश करते हैं।

'हैलो' विधि का नाम है।

{} में सब कुछ कोड रन है जब विधि कहा जाता है।

मान लौटाएं

जब आप किसी विधि से मान वापस करना चाहते हैं, तो आप कोष्ठक के पहले सेट में जिस प्रकार आप वापस लौटना चाहते हैं, डालते हैं।

- (NSString)returnHello {
  return @"Hello World";
}

आप जिस मूल्य पर लौटना चाहते हैं, वह return कीवर्ड के बाद जाता है;

कक्षा के तरीके

एक वर्ग विधि उस वर्ग पर कहलाती है जिस विधि से संबंधित है, उसका कोई उदाहरण नहीं है। यह संभव है क्योंकि ऑब्जेक्टिव-सी क्लास भी ऑब्जेक्ट हैं। किसी विधि को वर्ग विधि के रूप में निरूपित करने के लिए, उसे - a + बदलें:

+ (void)hello {
  NSLog(@"Hello World");
}

कॉलिंग के तरीके

एक आवृत्ति विधि को कॉल करना:

[classInstance hello];

 @interface Sample
 -(void)hello; // exposing the class Instance method
 @end

 @implementation Sample
     -(void)hello{
        NSLog(@"hello");
      }
 @end

वर्तमान उदाहरण पर एक इंस्टेंस विधि को कॉल करना:

[self hello];

@implementation Sample

     -(void)otherMethod{
       [self hello];
     }

     -(void)hello{
        NSLog(@"hello");
      }
 @end

एक तरीका है कि तर्क ले रहा है:

[classInstance addInt:1 toInt:2];

 @implementation Sample
     -(void)add:(NSInteger)add to:(NSInteger)to
        NSLog(@"sum = %d",(add+to));
      }
 @end

एक वर्ग विधि कॉलिंग:

[Class hello];

 @interface Sample
 +(void)hello; // exposing the class method
 @end

 @implementation Sample
     +(void)hello{
        NSLog(@"hello");
      }
 @end

उदाहरण के तरीके

एक आवृत्ति विधि वह विधि है जो किसी वर्ग के किसी विशेष उदाहरण पर उपलब्ध होती है, उदाहरण के तुरंत बाद:

MyClass *instance = [MyClass new];
[instance someInstanceMethod];

यहां बताया गया है कि आप कैसे परिभाषित करते हैं:

@interface MyClass : NSObject

- (void)someInstanceMethod; // "-" denotes an instance method

@end

@implementation MyClass

- (void)someInstanceMethod {
    NSLog(@"Whose idea was it to have a method called \"someInstanceMethod\"?");
}

@end

पासिंग वैल्यू पैरामीटर पासिंग

किसी विधि से गुजरने वाले पैरामीटर के मान से गुजरने पर, वास्तविक पैरामीटर मान को औपचारिक पैरामीटर मान पर कॉपी किया जाता है। इसलिए वास्तविक पैरामीटर मान को फ़ंक्शन से लौटने के बाद नहीं बदलेगा।

@interface SwapClass : NSObject

-(void) swap:(NSInteger)num1 andNum2:(NSInteger)num2;

@end

@implementation SwapClass

-(void) num:(NSInteger)num1 andNum2:(NSInteger)num2{
    int temp;
    temp = num1;
    num1 = num2;
    num2 = temp;
}
@end

कॉलिंग के तरीके:

NSInteger a = 10, b =20;
SwapClass *swap = [[SwapClass alloc]init];
NSLog(@"Before calling swap: a=%d,b=%d",a,b);
[swap num:a andNum2:b];
NSLog(@"After calling swap: a=%d,b=%d",a,b);

आउटपुट:

2016-07-30 23:55:41.870 Test[5214:81162] Before calling swap: a=10,b=20
2016-07-30 23:55:41.871 Test[5214:81162] After calling swap: a=10,b=20

संदर्भ पैरामीटर पासिंग पास

किसी विधि से गुजरने वाले पैरामीटर के संदर्भ में, वास्तविक पैरामीटर का पता औपचारिक पैरामीटर को दिया जाता है। इसलिए वास्तविक पैरामीटर मान को फ़ंक्शन से लौटने के बाद बदल दिया जाएगा।

@interface SwapClass : NSObject

-(void) swap:(int)num1 andNum2:(int)num2;

@end

@implementation SwapClass

-(void) num:(int*)num1 andNum2:(int*)num2{
    int temp;
    temp = *num1;
    *num1 = *num2;
    *num2 = temp;
}
@end

कॉलिंग के तरीके:

int a = 10, b =20;
SwapClass *swap = [[SwapClass alloc]init];
NSLog(@"Before calling swap: a=%d,b=%d",a,b);
[swap num:&a andNum2:&b];
NSLog(@"After calling swap: a=%d,b=%d",a,b);

आउटपुट:

2016-07-31 00:01:47.067 Test[5260:83491] Before calling swap: a=10,b=20
2016-07-31 00:01:47.070 Test[5260:83491] After calling swap: a=20,b=10


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow