Вот демонстрация на , Как Создать Соединение с базой данных для MySQL .
, можно загрузить MySQL Connector/J от здесь .
В ответ на аналогичный вопрос о передаче не-объектов методу в performSelectorOnMainThread:
я указал на категорию Дейва Дрибина на NSObject , который позволяет вам делать что-то вроде следующего:
[[person dd_invokeOnMainThread] doSomethingWithThing1:thing1 andThing2:thing2 andAlsoThing3:thing3];
для выполнения вашего метода с несколькими аргументами в основном потоке. Думаю, это довольно изящное решение. За кулисами он оборачивает вещи в NSInvocation, вызывая его в основном потоке.
Янтарный каркас также делает нечто подобное.
Вы можете сделать это, поместив свои аргументы в словарь или массив и передав их специальной функции
- (void)doStuff:(NSString *)arg1 and:(NSString *)arg2 and:(NSString *)arg3 {
...
}
- (void)doStuff:(NSArray *)argArray {
[self doStuff:[argArray objectAtIndex:0]
and:[argArray objectAtIndex:1]
and:[argArray objectAtIndex:2];
}
Если вы хотите сохранить сигнатуру метода получателя, я думаю, вы Мне нужно будет взглянуть на использование NSInvocation
, которое позволяет вам указывать несколько значений аргументов.
Вы можете обернуть свой вызов и использовать словарь в качестве контейнера для ваших аргументов, как предлагается в другом ответе, но мне это кажется как немного запаха кода.
Лучшим решением в этом направлении было бы создание класса, который инкапсулирует значения аргументов, то есть строго типизированный подход. Так, например, вместо передачи firstname
, surname
, вы должны передать экземпляр класса Person
. Вероятно, это лучший вариант, потому что методы с меньшим количеством аргументов могут дать более чистый код - но это совсем другая история .
Вы могли бы обернуть свой вызов и использовать словарь в качестве контейнера для ваших аргументов, как предлагается в другом ответе, но мне это кажется немного запахом кода.
Лучшим решением в этой строке было бы создание класс, который инкапсулирует значения аргументов - т.е. строго типизированный подход. Так, например, вместо передачи firstname
, surname
, вы должны передать экземпляр класса Person
. Вероятно, это лучший вариант, потому что методы с меньшим количеством аргументов могут дать более чистый код - но это совсем другая история .
Вы можете обернуть свой вызов и использовать словарь в качестве контейнера для ваших аргументов, как это предлагается в другом ответе, но мне это кажется немного запахом кода.
Лучшим решением в этой строке было бы создание класс, который инкапсулирует значения аргументов - т.е. строго типизированный подход. Так, например, вместо передачи firstname
, surname
, вы должны передать экземпляр класса Person
. Вероятно, это лучший вариант, потому что методы с меньшим количеством аргументов могут дать более чистый код - но это совсем другая история .
firstname
, surname
, вы должны передать экземпляр класса Person
. Вероятно, это лучший вариант, потому что методы с меньшим количеством аргументов могут дать более чистый код - но это совсем другая история . Так, например, вместо передачи firstname
, surname
, вы должны передать экземпляр класса Person
. Вероятно, это лучший вариант, потому что методы с меньшим количеством аргументов могут дать более чистый код - но это совсем другая история .