Il codice ha 2 problemi:
1) "char datechar ..." è un carattere singolo, che contiene solo un carattere/byte e non contiene l'intero array che stai producendo dal tuo oggetto data/stringa. Pertanto, la linea deve avere un (*) davanti alla variabile per memorizzare più caratteri anziché solo uno.
2) Dopo la correzione di cui sopra, si otterrebbe comunque un avviso a proposito di (char *) vs (const char *), pertanto, è necessario "trasmettere" poiché sono tecnicamente gli stessi risultati. Modificare la riga di:
char datechar = [date UTF8String];
in
char *datechar = (char *)[date UTF8String];
Avviso (char *) dopo il segno =, dice al compilatore che l'espressione avrebbe restituire un (char *) al contrario di è predefinito (const char *).
So che hai già segnato la risposta in precedenza, tuttavia, ho pensato di poter contribuire a spiegare i problemi e come risolvere in maggiore dettaglio.
Spero che questo aiuti.
Cordiali saluti Heider
fonte
2013-09-18 10:19:33
UTF8String restituisce un const char * –