Как передать одну строку в метод ожидает массив строк - PullRequest
0 голосов
/ 26 декабря 2018

Я новичок в цели C. Обычно в C # мы можем использовать строку params [] в качестве типа аргумента, когда мы хотим отправить одну или несколько строк в метод.Который мы можем либо передать одну строку или набор строк без каких-либо проблем с типом данных.Есть ли у нас что-нибудь похожее в объективе C

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

В target-c, если вы хотите передать один объект, где требуется массив объектов, вам просто нужно объявить массив с одним объектом.

Вы не можете передать один объект, где массивсчитается

В Objective-c Массив объявляется простым

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

Передайте этот массив в функцию

0 голосов
/ 26 декабря 2018

Все ссылочные типы 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 # Object ~> Obj-C id
C # [] ~> Obj-C NSArray

Используется, как показано ниже (все 3 эквивалентны):

[self funcWithString: @"single string"];  

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

[self funcWithStringArray: [NSArray arrayWithObject: @"single string"]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...