Existe uma maneira de converter objetos no objetivo-c, assim como os objetos são convertidos no VB.NET?
Por exemplo, estou tentando fazer o seguinte:
// create the view controller for the selected item
FieldEditViewController *myEditController;
switch (selectedItemTypeID) {
case 3:
myEditController = [[SelectionListViewController alloc] init];
myEditController.list = listOfItems;
break;
case 4:
// set myEditController to a diff view controller
break;
}
// load the view
[self.navigationController pushViewController:myEditController animated:YES];
[myEditController release];
No entanto, estou recebendo um erro de compilador, pois a propriedade 'list' existe na classe SelectionListViewController, mas não no FieldEditViewController, embora o SelectionListViewController seja herdado do FieldEditViewController.
Isso faz sentido, mas existe uma maneira de converter myEditController em um SelectionListViewController para que eu possa acessar a propriedade 'list'?
Por exemplo, no VB.NET, eu faria:
CType(myEditController, SelectionListViewController).list = listOfItems
Obrigado pela ajuda!
objective-c
Billy
fonte
fonte
Mais exemplos:
fonte
A tipografia no Objective-C é fácil como:
No entanto, o que acontece se o primeiro objeto não estiver
UIView
e você tentar usá-lo:Vai falhar. E é fácil encontrar essa falha neste caso, mas e se essas linhas estiverem em classes diferentes e a terceira linha for executada apenas uma vez em 100 casos. Aposto que seus clientes encontram essa falha, não você! Uma solução plausível é travar mais cedo , assim:
Essas afirmações não parecem muito boas, então podemos melhorá-las com esta categoria útil:
Isto é muito melhor:
PS Para coleções, digite security Xcode 7 tem muito mais do que typecasting - genéricos
fonte
Claro, a sintaxe é exatamente a mesma que C -
NewObj* pNew = (NewObj*)oldObj;
Nesta situação, você pode considerar o fornecimento dessa lista como um parâmetro para o construtor, algo como:
Em seguida, use-o assim:
fonte
A conversão para inclusão é tão importante quanto a exclusão para um programador de C ++. A conversão de tipo não é igual à RTTI, no sentido de que você pode converter um objeto em qualquer tipo e o ponteiro resultante não será nulo.
fonte