2012-02-01 7 views
1

少し長めになったメソッドがあります&私はそれを独自のファイルに配置したいと思います。私が取り組んでいるプログラムの外では役に立ちません。コードを読みやすくするために削除したいだけです。コードを読みやすくするために別個のファイルにメソッドを配置する

方法は、私はその後、私の中の私のviewController.hファイル&私の.mファイルへの.hをインポート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 

ごとにサブクラスを作ってみました、以下

- (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; 
} 

} 

ですviewController.mファイル。それは大丈夫ですが、randomiseAudioIndicesBeforeInitalPlayを呼び出すと、例外がスローされます( [self randomiseAudioIndicesBeforeInitalPlay];)

これは有効な方法ですか?どうすればそれが修正されるかもしれないかについてのアイデアはありますか?ありがとうございます。

答えて

2

メソッドを移動したい場合、またはカテゴリを移動するだけの場合は、カテゴリがその目的のために設計されています。あなたができないことは、新しいイヴァールを作ることです。

+0

非常に洗練されたソリューションでした – Octave1

関連する問題