Ir para o conteúdo
NSPointerArray e coleções de objetos fracos (objetivo – C)

NSPointerArray e coleções de objetos fracos (objetivo – C)

Haverá momentos em que você desejará uma coleção de referências fracas.  Qualquer uma ou muitas cadeias de notificação estão apenas implorando para introduzir ciclos de referência mais do que dispostos a vazar por todo o seu aplicativo.  Portanto, quando você tiver essa situação em seu aplicativo, talvez queira considerar o NSPointerArray.  Em anexo está um exemplo de [...]

2min read

Haverá momentos em que você desejará uma coleção de referências fracas.  Qualquer uma ou muitas cadeias de notificação estão apenas implorando para introduzir ciclos de referência mais do que dispostos a vazar por todo o seu aplicativo.  Portanto, quando você tiver essa situação em seu aplicativo, talvez queira considerar o NSPointerArray.  Em anexo está um exemplo do NSPointerArray em ação.

Code Sample

O NSPointerArray permitirá que você tenha uma coleção de ponteiros fortes ou fracos e, com uma pequena chamada estática, podemos começar a usar essa coleção.

NSPointerArray* myArray;
myArray = [NSPointerArray weakObjectsPointerArray];

Agora, em vez de adicionar objetos à coleção, adicionamos explicitamente os ponteiros à coleção.

obj1 = [[UIView alloc]init];
obj1.tag = 100;
[myArray addPointer:(__bridge void *)obj1];

E se você quiser obter um valor dele, basta usar o método pointerAtIndex: para obter o objeto. A única ressalva aqui é que, como a coleção é fraca, o ponteiro que sai pode ser um valor nulo.

[myArray pointerAtIndex:someIndex];

Tal como acontece com muitas coisas relacionadas a APIs, vê-las em ação é melhor do que ler sobre elas.  Então, estou anexando uma amostra mostrando como isso funciona.

NSPointerArray Example Code

Se você tiver uma solicitação de um recurso em nossos frameworks, informe-nos e veremos o que pode ser feito.

Dúvidas sobre um recurso?  Entre em contato conosco nos fóruns do NucliOS.

E se você tiver um pedido de artigo sobre como fazer para o produto NucliOS, você pode twittar para o feed @ Infragistics ou para mim @DarrellKress17 e veremos se podemos escrever isso para você.

By Darrell Kress

Solicite uma demonstração