Вы не можете этого сделать. Swift - статически типизированный язык, и во время компиляции компилятор должен понимать, какой у вас тип. Если ваш тип может быть одним или другим, компилятор не знает, как это решить.
Представьте, например, что у вас есть тип A
с методом foo()
и тип B
с методом bar()
. Если ваш элемент - A or B
, как компилятор разрешит вызов foo()
или bar()
во время компиляции? Это просто невозможно, поскольку нет никаких гарантий, что ваш тип будет реализовывать любые из них. Я бы предложил вам создать свою функцию с двумя отдельными необязательными параметрами. Что-то вроде:
func test(item: CVarArg?, other: AnyObject?)->String? {
return nil
}
Затем проверьте, какой из параметров передан. Надеюсь, что это поможет!
РЕДАКТИРОВАТЬ
Еще один вариант, который у вас есть, - это включить ваши типы в перечисляемые случаи. Что-то вроде:
enum Item {
case foo(CVarArg)
case bar(AnyObject)
}
func test(item: Item) {
switch item {
case .foo(let arg):
// arg is CVarArg
print(arg)
case .bar(let obj):
// obj is AnyObject
print(obj)
}
}
var arg: CVarArg!
test(item: .foo(arg))
Конкретно в Visual Studio переходят к "Опциям Инструментов" затем Избранная "Команда Visual Studio управления исходным кодом Сервер Founation" и проверяют, что "Шоу удалило объекты в проводнике Управления исходным кодом".
сделавший это - можно затем щелкнуть правой кнопкой по папке который поскольку и сказать, "Восстанавливают после удаления"
Как описано в TFS FAQ:
, Удаляет физический или логичный? Может случайный удалять быть восстановленным?
Удаляет, являются полностью восстанавливаемыми с “undelete” операцией. Вы wouldn’t хотят сделать восстановление SQL, потому что это откатывало бы каждое изменение в TFS во время начиная с файла, были удалены.