少し長めになったメソッドがあります&私はそれを独自のファイルに配置したいと思います。私が取り組んでいるプログラムの外では役に立ちません。コードを読みやすくするために削除したいだけです。コードを読みやすくするために別個のファイルにメソッドを配置する
方法は、私はその後、私の中の私の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];)
これは有効な方法ですか?どうすればそれが修正されるかもしれないかについてのアイデアはありますか?ありがとうございます。
非常に洗練されたソリューションでした – Octave1