Domanda

C'è un modo per ottenere la lunghezza in byte di un CFString dato un codifica dei caratteri arbitrario? Sembra possibile perché la funzione CFStringGetSmallestEncoding deve fare già alcuni calcoli, ma non voglio usare la codifica più piccolo, voglio sapere quanto è grande un buffer potrei aver bisogno di allocare se voglio i byte in codifica UTF-8 o forse un altro codifica dei caratteri a larghezza variabile.

E 'possibile? O ho bisogno di destinare il massimo possibile dimensione del buffer utilizzando CFStringGetMaximumSizeForEncoding?

È stato utile?

Soluzione

Hai Fondazione a disposizione? Se è così, si potrebbe lanciare il CFStringRef a un NSString * e utilizzare lengthOfBytesUsingEncoding:.

Occorre tuttavia tenere presente che CFStringGetMaximumSizeForEncoding è O (1), mentre lengthOfBytesUsingEncoding: è O (n) nella lunghezza della stringa (si sono essenzialmente facendo la conversione due volte), quindi potrebbe essere ancora meglio utilizzando CFStringGetMaximumSizeForEncoding di allocare un buffer.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top