2010-11-15 6 views
8

Sono stato alla ricerca di una soluzione per ore .. con assolutamente zero fortuna.UILocalNotification personalizzato suono

ho impostare una notifica locale:

UILocalNotification *notif = [[cls alloc] init]; 

[dateComp setDay:j+1]; 
[dateComp setHour:[[time objectAtIndex:0] integerValue]+offset]; 
[dateComp setMinute:[[time objectAtIndex:1] integerValue]]; 

NSLog(@"Year: %i, Month: %i, Day: %i, Time:%i:%i\n",[dateComp year], [dateComp month], 
        [dateComp day], [dateComp hour], [dateComp minute]); 

notif.fireDate = [gregorian dateFromComponents:dateComp]; 
notif.timeZone = [NSTimeZone defaultTimeZone]; 

notif.alertBody = [names objectAtIndex: k]; 
notif.soundName = @"fireburn.caf"; 

Avviso il nome suono ...

ho cercato di mettere 10 suoni (AIFF, WAV, CAF, ecc ...), ma la notifica appena si apre con il suono di default:/

ho il file "fireburn.caf" nella cartella Resources.

Perché è non giocare il mio suono ?????

Grazie.

risposta

10

RISPOSTA:

Niente di sbagliato con il codice ..

E 'solo che gli stupidi iPhone non ha cancellato le vecchie notifiche che ho fatto con il suono di default - _ -;

Quando ho pulito il progetto, cancellato l'applicazione dal telefono cellulare e riavviato il telefono quindi ha funzionato ..

Speranza qualcuno trova questa utile.

+3

Se qualcuno dovrebbe essere ancora alle prese con questo problema, ho scoperto che potrebbe essere necessario fare una cosa di più. Quando drag-drop'in il file audio nel progetto, oltre a controllare "Copia ...", potrebbe essere necessario per controllare il "Aggiungi a bersaglio" opzione. Questo ha fatto la cosa per me. Grazie comunque per la risposta. –

+0

Impressionante, ma ancora una volta, il tuo problema ha a che fare con QUALSIASI file di risorse che aggiungi (immagini, suoni, caratteri, ... ecc.);) – Mazyod

1

stai pulendo le vecchie notifiche con

UIApplication* app = [UIApplication sharedApplication]; 
NSArray* oldNotifications = [app scheduledLocalNotifications]; 

// Clear out the old notification before scheduling a new one. 
[app cancelAllLocalNotifications]; 

?

+0

Sì ... lo ero. Non ha funzionato. – Mazyod

0

Prova questo:

notif.soundName = [strSoundFileName copy]; 
+1

Aveva già trovato la soluzione per il problema! – Hemang