Objective-c syntax for passing a c-style array from NSStrings

What is the best syntax for passing a c-style array containing NSString*to an objective-c method? Here is what I am using now:

- (void) f:(NSString **) a {

}

- (void) g {
    NSString* a[2] = {@"something", @"else"};
    [self f:a];
}
+3
source share
3 answers

The best way is to use NSArray instead of c-style array.

+1
source

Only your other option:

- (void) f:(NSString* []) a {

}

. "", . , , , . (. NSError**, SDK iOS), .

+6

:

- (void) f:(NSString *[]) a

, ( ) NString, NString.

, , , NSString ** . , :

- (void) f:(NSString *[2]) a

, , 2 - , , "". ( , , .)

(. )

ARC

ARC :

NSString* a[2] = {@"something", @"else"};

, :

NSString* __strong a[2] = {@"something", @"else"};

. , , . , :

- (void) f:(NSString *[]) a

, , :

- (void) f:(NSString * __strong []) a

, - f NSString.

ARC / . ARC NSError __autoreleasing.

, , C- Objective-C. :

  • , ;

  • , , ;

  • C , __strong , . __unsafe_unretained, .

:

static NSString * const __unsafe_unretained a[2] = {@"something", @"else"}; 

- (void) f:(NSString * const __unsafe_unretained[]) a

NSString . .

+2

All Articles