如何创建固定大小的对象数组

2023-12-23

在 Swift 中,我试图创建一个包含 64 个 SKSpriteNode 的数组。我想首先将其初始化为空,然后将精灵放入前 16 个单元格和最后 16 个单元格中(模拟国际象棋游戏)。

根据我在文档中的理解,我希望得到类似的结果:

var sprites = SKSpriteNode()[64];

or

var sprites4 : SKSpriteNode[64];

但这不起作用。 在第二种情况下,我收到一条错误消息:“尚不支持固定长度数组”。这是真的吗?对我来说,这听起来像是一个基本功能。 我需要通过索引直接访问元素。


尚不支持固定长度数组。这实际上意味着什么?并不是说你不能创建一个数组n很多事情——显然你可以做let a = [ 1, 2, 3 ]得到一个包含三个的数组Ints。这意味着数组大小不是您可以声明的作为类型信息.

如果你想要一个数组nils,您首先需要一个可选类型的数组 -[SKSpriteNode?], not [SKSpriteNode]— 如果你声明一个非可选类型的变量,无论它是数组还是单个值,它都不能nil。 (另请注意[SKSpriteNode?]不同于[SKSpriteNode]?...你想要一个可选数组,而不是一个可选数组。)

Swift 在设计上非常明确地要求初始化变量,因为对未初始化引用内容的假设是 C(和其他一些语言)程序可能出现错误的原因之一。因此,您需要明确要求[SKSpriteNode?]包含 64 的数组nils:

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

如何创建固定大小的对象数组 的相关文章

  • 沙盒测试帐户反复询问 iOS 应用内购买的密码

    我用 Swift 语言开发了一个应用程序 我添加了应用内购买来删除广告 我还创建了一个沙箱帐户来测试 但后来我忘记了这个账户的信息 我不确定信息 密码输入屏幕仍然以闪烁的屏幕显示方式显示 即使我重置设备并重新加载它 也没有任何好处 实际上一
  • 我的结构不符合协议“Decodable”/“Encodable”

    我试图使用 Codable 来保存我正在创建的应用程序中的数据 但是当我将 Codable 放入我的结构中时 我不断收到错误 类型 ReminderGroups 不符合协议 Decodable and 类型 ReminderGroups 不
  • 无法在 Swift 中创建文件路径

    我尝试在 Swift 中打开该文件 为此 我创建了文件路径 这不起作用 maaaacy pwd Users tsypa maaaacy cat a txt test maaaacy a swift nil maaaacy 剧本 usr bi
  • Swift - 在 TableView 单元格中使用步进器递增标签

    这里又是一个 Swift 初学者 我只是想在每个 TableView 单元格中使用一个步进器来增加同一单元格中的标签 我发现了关于这个主题的几个问题 但它们包含其他元素 我无法提取基本概念 Swift Stepper Action 更改同一
  • 从 AVAudioRecorder 获取分贝

    我正在尝试从 AVAudio 录音机获取分贝值 这是我目前的代码 我有一个启动录音机的方法 然后是一个读取分贝值的方法 var recorder AVAudioRecorder 全局定义的记录器 然后在此处使用 func init reco
  • 使用 Swift 创建 NSAlert

    我有在 Objective C 中创建和 NSAlert 的代码 但我现在想在 Swift 中创建它 该警报旨在确认用户想要删除文档 我想要 删除 按钮来运行删除功能 而 取消 按钮只是为了消除警报 我怎样才能用 Swift 写这个 NSA
  • 如何像谷歌日历一样将单元格的内容滚动到表格视图中的另一个单元格中?

    我希望用户界面像谷歌日历那样进入桌面视图 它在不同的行中显示相同的日期事件 但是当您向上或向下滚动时 左侧的日期也会向上向下滚动 Can you please help me how to achieve this Please take
  • 在completionHandlers中存储值 - Swift

    我正在创建一个completionHandler它返回一个字典 但是当我在另一个类中调用这个方法时 它的值是零 func fetchLatestPosts completionHandler responseDict NSDictionar
  • ArraySlice 中的 Swift [重复]

    这个问题在这里已经有答案了 在数组上使用 prefix 方法后 我得到了所谓的 arraySlice 我怎样才能将其转换为数组 我试图从 FacebookGraphApi 获取 Ints 然后请求前 3 个 前缀 3 并尝试将它们添加到新数
  • 弱变量中间为零

    弱变量什么时候变为零 weak var backgroundNode SKSpriteNode texture SKTexture image initialBackgroundImage backgroundNode position C
  • 如何无限地每1分钟运行一个iOS应用程序?

    我制作了一个应用程序 需要每 1 分钟向服务器发送一次位置和状态更新 我尝试了以下方法 但没有一个能帮助我 有什么解决办法吗 1 NSTimer 很多人建议这样做 但问题出在后台模式上 它只能工作 20 分钟 该应用程序停止发送数据后 2
  • 在 Firebase 中构建聊天应用的数据

    我正在关注 Firebase 指南结构化数据 https firebase google com docs database ios structure data flatten data structures对于聊天应用程序 他们建议的结
  • 在 Swift 中使用 commitEditingStyle 动态删除 UITable 部分

    我正在处理一个无法解决的问题 我有一个来自客户数据库数组的名称表 每个客户在其他数据成员中都有一个名称属性 我可以成功删除某个部分中的行 但我不能删除该部分 当该部分中的最后一行被删除时 该部分必须消失 I got NSInternalIn
  • SwiftUI - 预览时未知的预览提供程序“ContentView_Previews_”。发生在一个全新的项目中

    我有这个简单的观点 import SwiftUI struct ContentView View var body some View Text Hello struct ContentView Previews PreviewProvid
  • 仅在 iPhone X 上显示状态栏

    如果不是 iPhone X 则希望隐藏状态栏 如果是 iPhone X 则希望显示状态栏 这很可能必须以编程方式完成 因为 plist 中没有支持此功能的键 我发现的最接近的一个是UIStatusBarHidden 方法一 You have
  • iOS 11 浮动 TableView 标题

    有一个应用程序包含多个部分 展开 时每个部分有几行 折叠 时没有 每个部分都有一个部分标题 使用以下子类重用它们UITableViewHeaderFooterView等等 到目前为止一切顺利 然后在 iOS 11 中 我使用了可视化调试器
  • 如何使用 Swift 将“完成”按钮添加到 iOS 中的数字键盘?

    它在默认键盘上工作得很好 但我无法让它在数字键盘上工作 有任何想法吗 据我所知 你不能在键盘部分添加 完成 按钮 你应该添加一个inputAccessoryView to the UITextField or UITextView 如果这就
  • xcode 9.0.1 / swift 4,没有使用 Objective-C 选择器 'onClick:forEvent:' 声明的方法 [重复]

    这个问题在这里已经有答案了 I use swift 4为了构建我的 UI 我创建了一个UIButton并想为其添加一个目标 但编译器会抛出警告 No method declared with Objective C selector onC
  • 检查 Swift 中关联类型是否符合协议

    在类似情况下 如何检查对象是否符合 可表示 协议 protocol Representable associatedtype RepresentType var representType RepresentType get set cla
  • 领域:结果 和列表

    是否可以转换Results

随机推荐

  • Java 最小化依赖关系

    我遇到过这样的情况 一小段Java代码有大量依赖的jar 然而 这些 jar 内部的依赖关系非常浅 在大多数情况下 它仅依赖于单个接口的 jar 我不想将所有 jar 与应用程序一起分发 而是只想将特定的类文件分发到它实际使用的 jar 中
  • 记录 JUnit 测试运行所需的时间

    我想记录我的 JUnit 测试以编程方式运行需要多长时间 我在各种测试类中有大量测试 我想了解每个单独的测试方法运行需要多长时间 我可以更改继承结构或以不同方式注释方法 但我希望避免在测试方法本身以及用于设置测试业务逻辑的之前 之后方法中添
  • Git 说是最新的,尽管更改是远程进行的

    使用 git bash 我在我的主分支上工作 推送它并决定我想要实现一个新功能 我为此创建了一个新分支 后来我添加了另一个功能 创建了另一个分支 我测试了所有内容并且它正常工作 所以我决定将所有内容合并到我的主分支 我将两个新分支推送到远程
  • 如何将.plist文件中的数据结构读取到NSArray中

    我正在使用以下内容手动创建数据结构 NSDictionary league1 NSDictionary alloc initWithObjectsAndKeys Barclays Premier League name Premier Le
  • 如何从路径中删除 Microsoft.PowerShell.Core\FileSystem::\\

    我正在使用 powershell 与文件夹及其所有子文件夹进行比较 并且它在我的本地计算机上工作正常 但是当我在服务器上尝试它时 它给了我错误并附加 Microsoft PowerShell Core FileSystem 到所有文件 如果
  • 如何使用 PHP 将元素添加到 JSON 对象? [复制]

    这个问题在这里已经有答案了 我有这个 JSON 数组 我想使用 PHP 向其中添加另一个值 使用 PHP 将 ID 和名称添加到该数组的最简单方法是什么 id 1 name Charlie id 2 name Brown id 3 name
  • 获取node.js应用程序的最大堆大小

    现在我在paas平台上使用node js 并且容器有内存限制 现在我想获取node js应用程序的堆大小的最大值 我知道使用参数 max old space size 我可以设置最大堆大小 但我想知道如何获取 max old space s
  • Selenium Webdriver sendkeys 在 IE9.0 中不触发 onchange 事件

    我正在使用 Java 为 ExtJs 中构建的应用程序编写 Selenium 测试脚本 我在附加到 onchange 事件的页面之一中有一个输入字段 每当用户修改字段中的文本时 就会触发 onchange 事件 我正在使用 WebDrive
  • 在 PyDev 控制台中停止正在运行的命令

    我使用 PyDev 控制台运行长脚本 并且经常希望在命令中间停止 在常规 python shell 中 我按 ctrl c 它会通过键盘中断停止命令 但在 PyDev 控制台中 它会进行文本复制 如何停止此控制台中的命令而不终止它 如果您使
  • 何时应使用 Readonly 和 Get only 属性

    在 NET 应用程序中 何时应使用 ReadOnly 属性 何时应仅使用 Get 这两者有什么区别呢 private readonly double Fuel 0 public double FuelConsumption get retu
  • @TargetApi 注解仅适用于一个 Api 级别或更高级别吗?

    我在我的应用程序中使用 TargetApi 23 TargetApi 23 Override public void onAttach Context context super onAttach context onAttachToCon
  • BigQuery 中交叉联接后的行聚合

    假设您在 BigQuery 中有下表 A user1 0 0 user2 0 3 user3 4 0 交叉连接后 您有 dist user1 user2 0 0 0 3 comma is just showing user val sepe
  • LOAD DATA LOCAL INFILE 导致 mysql2 gem 出现格式错误的数据包错误

    我正在尝试发出 LOAD DATA LOCAL INFILE 查询 以使用 Rails 3 1 1 下的 mysql2 gem 0 3 11 将一些 CSV 数据加载到表中 class Foo lt ActiveRecord Base de
  • 减小图像大小 C# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的场景 我希望减少图像大小 10 KB 到 3 KB 好吧 你想要的可以是这样的 Make sure to include this
  • 操作无法完成。无效指针 - Visual Studio 2015 更新 3

    打开时出现这个错误 cshtml file 操作无法完成 无效指针 安装更新 3 和 Net Core 后一切都会开始 MVC 核心应用程序 cshtml文件正确打开 请清除 Visual Studio 组件缓存 重新启动 Visual S
  • 使用 VTK 的 Python 可执行文件... pyinstaller、py2exe、cx_freeze 等

    我使用 pyqt 在 python 中构建了一个 gui 它导入了 VTK 我没有运气让 py2exe pyinstaller cx freeze 等使用它 我收到一个错误 使用 pyinstaller 说出以下内容 vtk helper
  • 从 GridView 中删除列

    我有一个带有几列的 GridView 我不想将其导出为 PDF 通过 iTextSharp 如何在导出数据之前隐藏不想导出的列 在导出数据之前 请执行以下操作 myGridView columns RemoveAt index Index
  • jQuery 检测移动 Safari/iOS 上的页面底部

    我基本上想要与 facebook twitter 和所有其他 无限 滚动网站相同的功能 我目前使用的代码是 jQuery document ready function jQuery window scroll function if io
  • 如何优雅地终止 BLOCKED 线程?

    有很多地方可以优雅地终止 C 线程 然而 它们依赖于循环或循环内执行的 if 条件 这假设该语句将被频繁执行 因此 当stopbool 标志被设置 线程快速退出 如果我有一个线程的情况不正确怎么办 就我而言 这是一个设置为从服务器接收数据的
  • 如何创建固定大小的对象数组

    在 Swift 中 我试图创建一个包含 64 个 SKSpriteNode 的数组 我想首先将其初始化为空 然后将精灵放入前 16 个单元格和最后 16 个单元格中 模拟国际象棋游戏 根据我在文档中的理解 我希望得到类似的结果 var sp