我对目标C还是陌生的。通常,在C#中,当我们想向一个方法发送单个或多个字符串时,可以使用params []字符串作为参数类型。我们可以传递单个字符串或字符串集合而没有任何数据类型问题。我们在目标C中有类似的东西吗?
答案 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"];
将此数组传递给函数