从空 Swift 数组中获取对象类型

2024-03-13

有没有办法从空数组中获取数组元素的实例? (我需要dynamic属性,因为我使用了一些 KVC 方法NSObject)

import Foundation

class BaseClass: NSObject {
    func myFunction() {
        doWork()
    }
}

class Car: BaseClass {
    dynamic var id: Int = 0
}

class Bus: BaseClass {
    dynamic var seats: Int = 0
}

var cars = Array<Car>()

我需要的是从这个空数组中获取空​​ Car 对象的实例,例如如下所示:

var carFromArray = cars.instanceObject() // will return empty Car object

我知道我可以使用:

var object = Array<Car>.Element()

但这对我不起作用,因为我从函数参数获取数组,并且我不知道它是元素类。

我尝试编写自己的类型来执行此操作,并且它有效,但是我无法将其标记为dynamic因为它无法在 Objective C 中表示。我尝试编写数组的扩展

extension Array {
    func instanceObject<T: BaseClass>() -> T? {
        return T()
    }
}

但当我使用它时,它有时会抛出错误fatal error: NSArray element failed to match the Swift Array Element type


Swift 3:获取空数组的元素类型:

let cars = [Car]()                    // []
let arrayType = type(of: cars)        // Array<Car>.Type
let carType = arrayType.Element.self  // Car.Type
String(describing: carType)           // "Car"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从空 Swift 数组中获取对象类型 的相关文章

  • Swift 3.0 Pin 颜色注释在 MapView 中没有改变

    我有兴趣根据案例场景更改注释的图钉颜色 在一个函数中 我发送了一个数组 用于确定引脚注释的颜色 到目前为止 我已经设置了一个名为 ColorPointAnnotation 的子类 它将确定 pinColor 然后 在 switch 语句中
  • 使用 Google place API 从 lat long 获取附近的地点

    我正在使用 google place API 即 https maps googleapis com maps api place search json location 33 7167 73 0667 radius 500 type f
  • 避免“在此块中强烈捕获自身可能会导致保留周期”消息

    每次我必须在块内使用全局变量或属性时 如下所示 self save if isItSaving NO self saveMyFile 我必须像这样重写 BOOL iis isItSaving id myself self self save
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • Swift 中具有透明背景的按钮边框

    我怎样才能做一个UIButton边框看起来像下图 入门 按钮一样具有透明背景吗 我应该如何使用情节提要来实现这一点 或者如何以编程方式实现这一点 设置backgroundColor to clearColor使按钮透明 例如尝试下面的代码
  • 无法转换“UINavigationController”类型的值

    我正在为我的应用程序实现一个搜索界面 因此基本上我会将搜索关键字从一个 ViewController 传递到另一个 ViewController 我已经多次进行过这种类型的参数传递 但这次似乎有些奇怪 目标 ViewController 嵌
  • 使用 UIImageJPEGRepresentation 时,compressionQuality 应该是多少?

    我想对用户库中的照片应用滤镜 然后将其写回磁盘 我在用着UIImageJPEGRepresentation 该函数需要一个UIImage and a compressionQuality值介于 0 0 和 1 0 之间 因为我想保留原始质量
  • 如何将音乐从我的应用程序切换到 iPod

    我在用MusicPlayerController我的应用程序中的对象来播放音乐 我知道当 iPhone ipod 应用程序终止时 可以继续播放我的应用程序音乐 我该怎么做 这涉及到一些事情 您必须在两种音乐播放器之间进行选择 应用程序音乐播
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • iOS WKWebView.scrollView委托导致BAD_ACCESS

    我的 viewController 有一个 UIView 属性 其中包含一个 WKWebView 我将 WKWebView rollView 委托设置为我的 viewController 它是我的 UIView 子类的公共函数 并在我的 v
  • 如何处理 Xcode“嵌入应用程序扩展”构建阶段

    通过添加新目标创建 共享扩展 时 Xcode 在应用程序目标设置的应用程序 构建阶段 选项卡中添加名为 嵌入应用程序扩展 的构建阶段 可以删除此阶段 但如果您尝试通过按左上角的 来添加它 您会发现可用选项中未列出 嵌入应用程序扩展 为什么会
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 按范围迭代数组

    我有一个数组 1 2 3 4 5 6 100 我希望将此数组迭代 5 次 具体来说 取数组的前 5 个数字并获取平均值 继续处理接下来的 5 个数字并获取平均值 依此类推 我尝试过多种方法 例如Dequeue和 for 循环但未能获得所需的
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留
  • 在 UIView 中实现自定义 StaggereGrid,就像 SWIFT 中的 Etsy 应用程序一样

    我想实现一个像 Etsy 应用程序一样的 StaggeredGrid 但我对此一无所知 你能给我一些建议吗 这是我需要做的事情的屏幕截图 None
  • 应用程序未通过协同设计验证?

    我在提交 iPhone 申请时遇到问题 我看到了一些类似的问题 但没有找到答案 当我存档项目并单击 验证 时 收到错误消息 应用程序未通过协同设计验证 签名无效 或者未使用 Apple 提交证书进行签名 我假设我在协同设计部分做错了什么 我
  • Swift 中通过不同类调用委托方法

    我正在获取 JSON 菜单 一旦 JSON 返回 我想运行 menuReady 来更新表的内容在 SomeTableViewController 类中 但下面的代码似乎不起作用 AIM Run 菜单就绪 JSON 返回后更新内容 PROBL
  • 如何通过辅助功能 API 获取当前所选文本的全局屏幕坐标。

    我需要帮助来了解字典应用程序如何在任何应用程序上按 CMD CTRL D 时显示所选文本的以下弹出对话框 我想实施 我的可可应用程序具有相同的功能 我的应用程序将在后台运行 并显示有关所选文本的一些热键的建议 我已经实现了热键捕获 我只需要
  • ActionScript、NetStream.Play.Failed iOS AIR 移动设备

    我正在尝试以类似于 Tiberiu Ionu Stan http stackoverflow com questions 2036107 aac mp4 not working in actionscript 3s netstream 的方
  • 使用泛型全面实现特征

    我正在通过实现矩阵数学来练习 Rust 但遇到了一些障碍 我定义了我认为与矩阵相关的特征 trait Matrix

随机推荐

  • 将多个工作表中的 Excel 数据复制到一张工作表中

    我尝试在互联网上搜索这个问题的各种答案 但找不到正确的答案 我有一个 Excel 工作簿 其中的工作表代表该月的每一天 每张表的格式都是相同的 周六和周日除外 并且包含通话统计信息 它以以下格式呈现 00 00 00 300 4 6 3 4
  • 为什么authenticate() 对非活动用户返回 None ?

    I have CustomUser像下面这样 class CustomUser AbstractBaseUser PermissionsMixin email models EmailField max length 100 unique
  • 让 Django 以“不同的文件名”返回响应

    我有一个 Django 视图 它返回一个HttpResponse使用特殊的 MIME 类型使用户的浏览器 下载 文件而不是在浏览器中查看它 问题在于 保存响应的默认文件名是用户尝试访问的 URL 有没有办法在文件中包含默认文件名HttpRe
  • SWIG:%import 和 %include 之间的区别

    The SWIG 文档 http www swig org Doc2 0 Preprocessor html这两个指令解释如下 include 要将另一个文件包含到 SWIG 界面中 请使用 include指令 不同的是 include i
  • LINQ to NHibernate - .GroupBy().Skip().Take() 导致异常

    NHibernate 版本 3 3 1 4000 Query IQueryable
  • 想要测试空手道 API 中整数值应 >3 的断言

    json 响应是 值 0 23 我想在这里放置断言值应该小于 3 那么如何做到这一点 尝试了文档中的一些示例 但它们适用于此处的 jsonenter 代码的数组格式 场景 显示任何向 CS 发出 DB 请求所需的最短时间 该值是数据库访问性
  • Gem::installerror:“json”本机 gem 需要安装构建工具。请更新我们的路径以包含构建工具

    我使用 Railsinstaller 安装 Rails 但仍然收到此错误消息 基于与此相关的其他问题 看来 Railsinstaller 应该包含 devkit 并且这个问题不应该发生 我做错了什么 顺便说一句 这是当我更改 gemfile
  • 实体框架上下文应该放入using语句中吗?

    实体框架上下文对象实现 Dispose 方法 该方法 释放对象上下文使用的资源 它到底有什么作用 总是将其放入 using 语句中会是一件坏事吗 我见过它在有或没有 using 语句的情况下使用 我具体将在 WCF 服务方法中使用 EF 上
  • 中断boost::asio同步读取?

    我正在使用 asio 同步套接字通过 TCP 从后台线程读取数据 这被封装在 服务器 类中 但是 我希望线程在调用此类的析构函数时退出 问题是对任何读取函数的调用都会阻塞 因此线程不能轻易终止 Win32 中有一个 API 可以实现这一点
  • 鼠标仅悬停在文本上而不是整行上

    如何仅在文本而不是整行上提供鼠标悬停效果 我尝试使用 Position 但结果为空 下面是小提琴链接 ul li Task1 li li Task2 li li Task3 li li Task4 li li Task5 li li Tas
  • Eclipse + Tomcat - 直接从工作区提供 Web 应用程序

    将 Tomcat 配置为直接从工作区中的项目目录提供服务的理想方法是什么 related https stackoverflow com a 6378629 292614 我想要我的静态网络资源每当我对它们进行更改时即可立即可用 而无需将它
  • 设置一堆简短/友好的重定向 URL

    我需要设置数百个遵循以下格式的短重定向 URL http mysite com shorturl 这将重定向到 http mysite com index php id N 其中 N 是与该快捷方式对应的 ID 执行此操作的最佳方法是什么
  • 查找字符和数字之间可能的双射

    假设您有一个字符串 S 和列表 L 中的一个数字序列 使得 len S len L 检查是否可以找到字符串的字符与序列中的数字之间的双射以使每个字符与一个且仅一个数字匹配的最干净的方法是什么 例如 aabbcc 应与 115522 匹配 但
  • 为动态创建的 HTML 元素创建事件监听器

    在 downMouseBtn event 事件处理程序中 我创建了元素 div 我需要为创建的项目创建一个事件监听器 我怎样才能创建这个 添加哪部分代码呢 我需要处理动态生成的项目的 mouseClick 事件 import Compone
  • 字符串中回文子序列的总数

    问题是这样的 对于作为输入给出的每个字符串 您需要告诉它的回文子序列的数量 不一定是不同的 请注意 空字符串不是回文 例如 aab 的回文子序列是 a a b aa 该方法返回 4 我心中有寻找最长回文子序列的动态规划解决方案 因此尝试从中
  • Reactive Cocoa 5 和 ReactiveSwift 网络请求处理

    我试图弄清楚是否可以使用 ReactiveSwift 和 RAC5 来实现适合我需求的网络请求处理 在主题下从 RACSignal 迁移到 ReactiveSwift 或 RAC5 https stackoverflow com quest
  • 如何在没有结构体实例的情况下调用特征方法?

    如果我有一个结构体 其方法没有self作为参数 我可以通过调用该方法SomeStruct method 我似乎无法对从特征定义的方法做同样的事情 例如 trait SomeTrait fn one trait gt uint struct
  • 未知提供商 CookieStore

    我正在提供服务 我想使用 cookieStore 模块 它工作正常 但是当单元测试时它会中断 并给出错误 cookieStoreProvider 该服务如下所示 serviceModule factory filtersService ro
  • 如何将 --relative 与 git format-patch 一起使用?

    当我使用git diff relative HEAD HEAD 我得到了一些不错的补丁输出 我删除了它所在目录之外的路径 我开始使用git format patch我也想用 relative但没有看到任何选项 我怎样才能得到同样的效果 Th
  • 从空 Swift 数组中获取对象类型

    有没有办法从空数组中获取数组元素的实例 我需要dynamic属性 因为我使用了一些 KVC 方法NSObject import Foundation class BaseClass NSObject func myFunction doWo