Преобразовать код в функцию - PullRequest
0 голосов
/ 04 октября 2010

Привет всем, мне нужно преобразовать этот код в функцию с 2 параметрами, в этом случае первый параметр - Новости , а второй aif Можете ли вы это сделать ??

-(IBAction)news
{
CFURLRef        soundFileURLRef;
SystemSoundID   soundFileObject;
CFBundleRef mainBundle;
mainBundle = CFBundleGetMainBundle ();

// Get the URL to the sound file to play
soundFileURLRef  =  CFBundleCopyResourceURL (mainBundle,
                                             CFSTR ("News"),
                                             CFSTR ("aif"),
                                             NULL);

// Create a system sound object representing the sound file
AudioServicesCreateSystemSoundID (soundFileURLRef, &soundFileObject);

AudioServicesPlaySystemSound (soundFileObject);

return;

}

Ответы [ 2 ]

3 голосов
/ 04 октября 2010

Если проблема CFSTR - это проблема, то решение:

-(void) playNews: (NSString*) news type: (NSString*) type
{
    CFURLRef        soundFileURLRef;
    SystemSoundID   soundFileObject;
    CFBundleRef mainBundle;
    mainBundle = CFBundleGetMainBundle ();

    // Get the URL to the sound file to play
    soundFileURLRef  =  CFBundleCopyResourceURL (mainBundle,
            (CFStringRef)news,
            (CFStringRef)type,
            NULL);

    // Create a system sound object representing the sound file
    AudioServicesCreateSystemSoundID (soundFileURLRef, &soundFileObject);

    AudioServicesPlaySystemSound (soundFileObject);
}

Но объявление (IBAction) здесь не имеет смысла, поскольку этот метод нельзя напрямую использовать из Interface Builder.

0 голосов
/ 04 октября 2010

Если это действие, полученное классом от пользователя, использующего элемент управления, то единственное, что вы можете сделать, - это -(IBAction)nameOfAction:(id)sender;.В противном случае вам нужно написать команду, чтобы взять два требуемых аргумента и вызвать их из IBAction.

...