【发布时间】:2012-02-01 20:32:18
【问题描述】:
我有一个方法有点长,我想把它放在自己的文件中。它在我正在处理的程序之外没有用,我真的只是想删除它,以便我的代码更具可读性。
方法如下,
- (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;
}
}
我尝试按照this previous question创建一个子类
//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 文件中,并将我的 .m 文件导入到我的 viewController.m 文件中。它的构建正常但是当我尝试调用 randomiseAudioIndicesBeforeInitalPlay 时它会引发异常(我使用 [self randomiseAudioIndicesBeforeInitalPlay];)
这是一种有效的方法吗?如果是这样,关于如何修复它的任何想法?在此先感谢:)
【问题讨论】:
标签: objective-c methods