ios отключает newthreadselector, как с помощью Objects?

#multithreading #ios

#многопоточность #iOS

Вопрос:

Я знаю, что

detachNewThreadSelector:итОговая цель:с помощью Object

может содержать аргумент (id). Я поискал в нем, что это может работать для NSString.

Однако, когда я передаю целое число или size_t, оно завершается сбоем. Кто-нибудь может сказать мне, что такое аргумент (id)?

Более того, как я могу передать потоку более одного параметра? Например, у меня есть функция,

-(NSInteger)getIneger: (NSInteger) Номер страницы с именем файла (NSString*) ;

что-то в этом роде. Спасибо

Ответ №1:

Что (id)anArgument говорит вам о том, что вам нужно передать аргумент Objective-C. Поскольку ни integer, ни size_t не являются объектами Objective-C, приложение завершает работу с ошибкой. Вам нужно будет упаковать их в NSNumber , чтобы это сработало. Вам также придется изменить метод, чтобы использовать NSNumber вместо int . Чтобы передать два или более аргументов, я предлагаю вам использовать NSDictionary объект для передачи значений на основе ключей. Вы можете определить метод, который принимает NSDictionary объект, распаковывает значения и вызывает исходный метод, который вы намеревались вызвать.