【问题标题】:Placing a method in a seperate file to make code more readable将方法放在单独的文件中以使代码更具可读性
【发布时间】: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


    【解决方案1】:

    如果您只想移动一个或几个方法,Category 是可行的方法,这就是它们的设计目的。你不能做的是创建任何新的 ivars。

    【讨论】:

      猜你喜欢
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多