iPhone SDK - Call Objective C function
我想创建一个名为"playsound"的函数,它有一个(但后面有两个参数——一个是文件名,另一个是音乐类型(mp3,…)。
但我不能让我的工作人员…请帮帮我
这是我的密码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // // MainView.m // // Created by Christopher Fuchs on 26.01.11. // Copyright 2011 __MyCompanyName__. All rights reserved. // #import"MainView.h" #import <AVFoundation/AVAudioPlayer.h> #import <AVFoundation/AVFoundation.h> @implementation MainView void playSound(char filename){ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Mein Alert" message:filename delegate:nil cancelButtonTitle:@"Abbrechen" otherButtonTitles:nil]; [alert show]; [alert release]; } - (IBAction)PlayFatGuyWalking:(id)sender { playSound(@"MusicFile"); } @end |
现在,我只是添加了一个警报而不是播放声音框架参数称为"文件名",应作为警报消息调用。
提前谢谢
格里兹
1 2 3 4 5 6 | - (void)playSound:(NSString *)filename { // method body } // calling [self playSound:@"MusicFile"]; |
做这行:
1 | void playSound(char filename) |
进入这个:
1 | void playSound(NSString *filename) |
@"foo"结构表示"这是一个nsstring"。
另外,如果您希望将它保留为C函数,那么您可能希望将它移出@implementation块。
您会发现,几乎所有要求在cocoa中输入字符串的内容都需要nsstring,而不是char*。
哦,是的,而且(char文件名)在纯C中也不起作用,它是一个单字节变量,而不是指向潜在字符串的指针。