将方法放在单独的文件中以使代码更具可读性

时间:2012-02-01 20:32:18

标签: objective-c methods

我有一种方法已经有点长了&我想把它放在自己的文件中。它在我正在处理的程序之外没用,我真的只想删除它,以便我的代码更具可读性。

方法如下,

  - (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文件&amp;我的.m文件到我的viewController.m文件中。它构建正常,但是当我尝试调用randomiseAudioIndicesBeforeInitalPlay时会抛出异常(我使用过) [self randomiseAudioIndicesBeforeInitalPlay];)

这是一种有效的方法吗?如果有任何关于如何修复的想法?提前谢谢:)

1 个答案:

答案 0 :(得分:2)

如果你只是想移动一个方法或一些方法,那么类别就是可行的方法,这就是它们的设计目标。你不能做的是创造任何新的伊娃。