#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
объект, распаковывает значения и вызывает исходный метод, который вы намеревались вызвать.