我有一种方法已经有点长了&我想把它放在自己的文件中。它在我正在处理的程序之外没用,我真的只想删除它,以便我的代码更具可读性。
方法如下,
- (void)randomiseAudioIndicesBeforeInitialPlay
{
int numberOfStems = 20;
index = malloc(numberOfStems*sizeof(int));
for (int i = 0; i < numberOfStems; i++)
{
index[i] = i;
}
for (int i = (numberOfStems - 1); i > 0; i--)
{
int randomIndex = arc4random() % i;
int tmp = index[i];
index[i] = index[randomIndex];
index[randomIndex] = tmp;
}
}
制作子类
//RandomiseStems.h
#import <Foundation/Foundation.h>
@interface RandomiseStems : UIViewController {
int *index;
}
@property(nonatomic, readwrite) int *index;
- (void)randomiseAudioIndicesBeforeInitialPlay;
@end
//RandomiseStems.m
#import "RandomiseStems.h"
@implementation RandomiseStems
@synthesize index;
- (void)randomiseAudioIndicesBeforeInitialPlay
{
NSLog(@"randomise called");
int numberOfStems = 20;
//int* index = malloc(numberOfStems*sizeof(int));
index = malloc(numberOfStems*sizeof(int));
for (int i = 0; i < numberOfStems; i++)
{
index[i] = i;
}
for (int i = (numberOfStems - 1); i > 0; i--)
{
int randomIndex = arc4random() % i;
int tmp = index[i];
index[i] = index[randomIndex];
index[randomIndex] = tmp;
//free index
}
}
@end
然后我将.h导入我的viewController.h文件&amp;我的.m文件到我的viewController.m文件中。它构建正常,但是当我尝试调用randomiseAudioIndicesBeforeInitalPlay时会抛出异常(我使用过) [self randomiseAudioIndicesBeforeInitalPlay];)
这是一种有效的方法吗?如果有任何关于如何修复的想法?提前谢谢:)
答案 0 :(得分:2)
如果你只是想移动一个方法或一些方法,那么类别就是可行的方法,这就是它们的设计目标。你不能做的是创造任何新的伊娃。