iPhone/Mac的“播放声音类”: link text如何在Objective-C中包含和调用示例代码方法?
我发现一个可怕的很多伟大的Objective-C类和代码示例这里...等世界各地。
我成功创建了.h和.m文件,但是如何从现有代码中调用它们?
- 我在哪里放置@class或#import语句?
- 如何调用方法?
- 如果我需要播放2-3个不同的声音文件,该怎么办?
- 为什么包含代码...没有关于如何在任何地方使用它的任何信息?
iPhone/Mac的“播放声音类”: link text如何在Objective-C中包含和调用示例代码方法?
我发现一个可怕的很多伟大的Objective-C类和代码示例这里...等世界各地。
我成功创建了.h和.m文件,但是如何从现有代码中调用它们?
无论你想从哪一个类中调用某个方法,都要将#import "SomeClass.h"
放在.h文件的顶部。
然后你可以做[SomeClass someMethod]
或SomeClass *object = [[SomeClass alloc] init]
,或任何你想做的事情。
这是非常基本的,你应该通过The Objective-C Programming Language Guide
阅读通常吕秀莲,你可以告诉需要通过查看对象超类
在这种情况下,如果你看一下.H做什么文件,你可以看到@interface声音:NSObject的
声音是这个类的名称,NSObject的是我们的超
的使用initWithPath方法返回本身并做了[超级初始化]这意味着CA lls父母init方法。
为了让您调用这种方法有两种方法之一。
您可以在代理中拥有一个您管理的属性。
@class Sound;
@interface ScanViewController : UIViewController {
Sound *aSound;
}
@property (nonatomic, retain) Sound *aSound;
然后somwhere在您的代理
- (void) someFunction() {
aSound = [[Sound alloc] initWithPath:@"pathtoSound"];
}
如果你没有希望它是你可以很容易地在一个.m文件的任何地方创建一个新的Sound对象,像这样的属性。
Sound *mySound = [[Sound alloc] initWithPath:@"pathtoSound"];
如果你想多种声音,一个声音阵列
附:将它们储存不要忘记释放这些对象,因为你已经分配了它们。
我读过......和其他许多...多次。我找不到所有这些只是“清楚地说明”。也许是因为有很多不同的方式来做到这一点......并且没有一种方法是“正确的”。 所以我不必一直使用@class? – Annette 2010-07-23 14:26:07
我设法让事情编译没有任何错误......并且它似乎工作...(所以我知道我99%成功)......但“构建和分析”似乎总是报告内存泄漏这一行:aSound = [[Sound alloc] initWithPath:@“pathtoSound”]; – Annette 2010-07-23 14:28:23
@class与#import:http:// stackoverflow。com/questions/322597/objective-c-class-vs -inport – Kurbz 2010-07-23 14:29:24