objective-c - objective-c bool 值数组

标签 objective-c ios

我正在开发一款具有二维点板的游戏,每个点都有一个 bool 属性(占用/未占用)。我在想实现这一点的最佳方法是创建一个简单的 c bool 值数组。这将比创建可变数组更有效。我只是对实现这一目标的最佳方法感到困惑。问题是在初始化板对象之前我不知道板的大小。
界面如下所示:

@interface TouchBoard : NSObject{
NSInteger height,width;
BOOL dots[10][10];

}

和这样的实现:
-(id)initWithHeight:(NSInteger)rows Width:(NSInteger)columns{
    if ( self = [super init]){
        height = rows;
        width = columns;
        dots[height][width];
    }
    return self;

}

麻烦的是,在界面中,如果我尝试用动态数量的索引声明点变量,点 [] [],它只会给我一个错误。
显然,在对象初始化之前我不知道数组的大小,但在那之后它不会改变,只有它的元素会从真/假改变。

实现这一目标的最佳方法是什么?

最佳答案

在您的界面中,声明:

BOOL ** dots;

然后,您需要使用 malloc , 动态分配内存:
int i;

dots = malloc( rows * sizeof( BOOL * ) );

for( i = 0; i < rows; i++ )
{
    dots[ i ] = calloc( columns, sizeof( BOOL ) );
}

不要忘记在您的 dealloc 方法中释放:
int i;

for( i = 0; i < rows; i++ )
{
    free( dots[ i ] );
}

free( dots );

关于objective-c - objective-c bool 值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098218/

相关文章:

ios - AWSS3TransferManagerErrorCancelled 是什么意思以及如何摆脱它?

iphone - 委托(delegate)没有从另一个 View Controller 调用,尝试了一切

iphone - 在 iphone 应用程序 View 中最好在标签中显示 url 链接

iphone - 如何从 Xcode 获取 ipa 文件以在真实设备中运行 iPhone 应用程序?

iphone - UIApplication 的 openURL 使我的应用程序崩溃

ios - 如何在 Swift 中的 UIView/Utility 类中获取导航栏

objective-c - Cocos2d 中的 UITextField 示例

ios - 删除 TableView 单元格按钮崩溃

ios - 在快速过滤来自服务器的字典数组时遇到问题

ios - 快速扫描存储在 Xcode 项目中的目录内容