如何将单个字符串传递给方法期望字符串数组

时间:2018-12-26 05:56:40

标签: objective-c

我对目标C还是陌生的。通常,在C#中,当我们想向一个方法发送单个或多个字符串时,可以使用params []字符串作为参数类型。我们可以传递单个字符串或字符串集合而没有任何数据类型问题。我们在目标C中有类似的东西吗?

2 个答案:

答案 0 :(得分:0)

所有Objective-C引用类型都是NSObject的子类。这使我们可以进行一定程度的动态输入。

以下两个版本基本相同。

旧的通用版本:

- (void)funcWithString:(id)param {
    NSLog(@"funcWithString %@", param);
}

- (void)funcWithStringArray:(NSArray*)paramArr {
    NSLog(@"funcWithStringArray %@", paramArr);
    for (id str in paramArr) {
        [self funcWithString:str];
    }
}

更现代的静态版本:

- (void)funcWithString:(NSString*)param {
    NSLog(@"funcWithString %@", param);
}

- (void)funcWithStringArray:(NSArray<NSString*>*)paramArr {
    NSLog(@"funcWithStringArray %@", paramArr);
    for (NSString* str in paramArr) {
        [self funcWithString:str];
    }
}

C#对象〜> Obj-C ID
C#[]〜> Obj-C NSArray

用法如下(所有3个都是等效的):

[self funcWithString: @"single string"];  

[self funcWithStringArray: @[@"single string"]];  

[self funcWithStringArray: [NSArray arrayWithObject: @"single string"]];

答案 1 :(得分:0)

在Objective-c中,如果要在需要对象数组的地方传递单个对象,则只需声明带有单个对象的数组即可。

您不能传递考虑数组的单个对象

在Objective-c数组中声明为简单

NSArray *array = [NSArray arrayWithObject:@"String1"];

将此数组传递给函数