iPhone SDK 合成 BOOL 数组

2024-02-07

当尝试合成如下所示的 bool 数组时,出现编译器错误:

// .h

#import <UIKit/UIKit.h>


@interface SomeViewController : UIViewController {

    BOOL boolArray[100];
}

@property (nonatomic) BOOL boolArray;

@end


//m

#import "SomeViewController"


@implementation SomeViewController

@synthesize boolArray;

@end

我可能犯了一个根本性的错误,但我现在就能发现,用 boolArray[100] 合成也不起作用。


您可能需要完整类型,即 @property(非原子)BOOL boolArray[100];

[100] 是重要的类型信息,而不仅仅是指示要分配多少空间。

另外,我认为该房产将被视为const BOOL *无法分配,所以可能必须是readonly。正确的做法可能是使其只读,这意味着 Thins 将获取数组指针,然后将其下标以分配给数组的成员。

或者,您可以使用NSArray为此,但这需要您使用NSNumber与 boolVaules 相比,这更像是一个混蛋。

UPDATE

实际上,由于某种原因,愚蠢的编译器不喜欢 [] 。尝试这个:

@interface TestClass : NSObject {

    const BOOL *boolArray;
}

@property (nonatomic, readonly) const BOOL *boolArray;

@end


@implementation TestClass;

- (const BOOL *)boolArray {
    if (!boolArray)
        boolArray = malloc(sizeof(BOOL) * 100);
    return boolArray;
}

- (void)dealloc {
    [super dealloc];
    free((void *)boolArray);
}

@end

另一个更新

这编译:

@interface TestClass : NSObject {

    BOOL boolArray[100];
}

@property (nonatomic, readonly) const BOOL *boolArray;

@end


@implementation TestClass;

- (const BOOL *)boolArray {
    return boolArray;
}

@end

这是一个奇怪的问题。我希望编译器能够准确解释它不满意的地方,例如“无法用数组类型声明属性”之类的东西。

另一个更新

看这个问题:在 Objective C 中创建整数属性数组 https://stackoverflow.com/questions/476843/create-an-array-of-integers-property-in-objective-c

显然,根据 C 规范,数组不是“普通旧数据”类型,并且 Objective-C 规范只允许您声明 POD 类型的属性。大概这就是 POD 的定义:

http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html

但读起来似乎 POD 数组就是一个 POD。所以我不明白。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone SDK 合成 BOOL 数组 的相关文章

随机推荐

  • 如何销毁tinyMce?

    我使用的是最新版本3 4 b3 我将它放在一个对话框中 它的内容是动态创建的 所以这意味着tiny 应该将自身绑定到的文本区域每次都会被创建 因此 当我第一次加载对话框时 会出现微小的情况 如果我第二次加载该对话框 该对话框将不会再次显示
  • 为什么 Rails RSpec 响应显示 302 而不是 401?

    我已经被这个问题困扰好几天了 我不知道它出了什么问题 几个月前我开始使用 Ruby on Rails 目前正在学习使用 API 进行身份验证 我看过其他类似的主题here https stackoverflow com questions
  • 在 BinaryObjects 的 Ignite 缓存上执行 SQL

    我正在从 Spark 数据帧创建 BinaryObject 的缓存 然后我想在该 ignite 缓存上执行 SQL 这是我的代码在哪里bank是包含三个字段 id name 和age 的数据框 val ic new IgniteContex
  • MATLAB 的堆栈大小是多少?

    MATLAB R2018a 64 位 的默认堆栈大小是多少 堆栈大小似乎比 64 位 C 程序大 我为什么这么问 我问这个问题是因为我正在调用英特尔 MKL拉帕克 dtrtri https software intel com en us
  • 在java中修改复杂的csv文件

    我想编写一个可以打印和修改不规则csv文件的程序 格式如下 1 date 2 organization name 3 student name id number residence student name id number resid
  • 将视觉选择发送到外部程序而不影响缓冲区

    我想要实现的是将视觉选择发送到外部程序而不影响缓冲区的内容 Example 让以下代码块代表当前缓冲区 让 代表视觉选择的结束 This is not a test 1 lt This is not gt a test 2 This is
  • YouTube 播放器.destroy();即使在验证玩家时也会抛出“this.a is null”

    所以我有一个带有两个面板的小应用程序 使用 iframe API 单击一个面板将全屏展开该面板 并显示 播放视频 按钮和一些附加信息 单击左上角的按钮将使 UI 返回到标准状态 关闭视频并将面板缩小到适合 50 50 现在我们有两个视频 我
  • 如何处理带有图像和文本视图的自定义列表视图中的图像视图的点击?

    我想知道我们如何处理带有图像和文本视图的自定义列表视图上的图像视图的点击 我什至使 Imageview 可点击 这是我的代码 自定义适配器 java public class CustomAdapter extends ArrayAdapt
  • 返回第一个表中的所有数据,如果存在则仅返回第二个表中的 1 个数据

    我正在使用MySql 我有 2 个表 一个是带有主键 propertyId 的名称和数据列表 表 2 包含具有主键 propertyImageId 的图像 每个 propertyId 可能有多个图像或根本没有图像 我需要获取属于agentI
  • SQL不是单组组函数

    当我运行以下 SQL 语句时 SELECT MAX SUM TIME FROM downloads GROUP BY SSN 它返回客户下载的最大总价值 但是如果我尝试通过将其添加到 select 语句来查找该最大值所属的社会安全号码 SE
  • C++ 使用 constexpr 和 lambda 表达式

    我正在看书C 17 完整指南 https rads stackoverflow com amzn click com 396730017X以及第 6 1 节中constexprlambda作者举了两个例子 auto squared1 aut
  • 检查 Swift 中是否存在 func

    我想在调用函数之前检查它是否存在 例如 if let touch AnyObject touches anyObject let location touch locationInView self touchMoved Int locat
  • Glassfish 作为 OSGi 容器

    我正在评估 OSGi 容器 主题是使用 Glassfish 来包含我的 OSGi 应用程序组件 我的问题是 Glassfish 对此有好处吗 有人有以这种方式使用它的经验吗 背景 该应用程序不是 Java EE 应用程序 而是 Spring
  • Bash 在脚本中退出 sudo

    我需要使用 sudo 执行安装脚本 但在脚本结束时 脚本需要退出 sudo 并以普通用户身份继续 Example sudo install sh 脚本以 root 身份运行并执行所需操作 su myscriptuser service my
  • 如何以编程方式获取我的设备的手机号码?

    我尝试过使用两种方法来检索我的电话号码 但这两种方法都不起作用 我用了 电话管理器 订阅管理器 我确实获得了网络名称 国家 地区 iso 和 IMEI 但每当我尝试返回号码时 它都不会返回任何内容 我还添加了这些所需的所有权限 我的清单如下
  • Selenium - 过时的元素引用:元素未附加到 C# 中的页面文档

    我正在使用 selenium 来获取网站表格中的数据进行分析 我必须扫描并获取大约 1000 行的表 我知道该页面有 Javascript 它会自动更新 DOM 但表的行太多 所以当我扫描代码时总是抛出异常 我尝试使用以下代码 Boolea
  • 在 Android 搜索视图中显示建议列表中的选择

    我有一个带有建议列表的搜索视图 如果用户从列表中选择一个项目 则会发送一个新意图 我可以应用我的过滤器 但搜索视图仍为空 如果我使用 setQuery 更新 onNewIntent 中的搜索视图 见下文 效果是所选项目显示在搜索视图中 但建
  • APNs 通过 macOS Sierra 推送通知

    我正在尝试使用连接到的简单 PHP 工具向我的手机发送推送通知ssl gateway push apple com 2195 但连接失败并出现以下错误 Warning stream socket client SSL operation f
  • 通过文件目标完美缓存

    阅读有关的文档后基于文件目标的输出缓存 https docs prefect io core concepts persistence html output caching based on a file target 我认为这个工作流程
  • iPhone SDK 合成 BOOL 数组

    当尝试合成如下所示的 bool 数组时 出现编译器错误 h import