- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有没有办法在 Swift 2.1 中实现这一点
class Apple
{
}
class Fruit
{
let apples = [Apple]();
}
let fruit = Fruit();
let appleType: AnyClass = Apple.self;
let applesType: Any = fruit.apples.self.dynamicType;
let properties = Mirror(reflecting: fruit).children;
for property in properties
{
let magicalApples = property.value;
let array = Array<appleType>(); // creating array of Apple from type
let apples = magicalApples as! Array<appleType> // typecasting to array of Apple from type
let moreApples = magicalApples as! applesType // typecasting to [Apple] from type
let anyApples = magicalApples as! Array<AnyObject> // error SIGABRT, is this a bug?
}
评论目标抛出错误,“使用未声明的类型”。
我的目标是了解存储在 var
中的类型 appleType
是否可以用作 Type
最佳答案
不,你不能分配一个新类型,因为它是一个 let。
Cannot assign to immutable expression of type 'ClassName.Type'
-- 更新--
let anyApples = magicalApples as! Array<AnyObject>
应该是
let anyApples = magicalApples as! Array<Any>
?
-- 更新 2 --
关于ios - 来自 AnyClass 或 dynamicType 的数组,Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34460875/
假设我有一个协议(protocol): protocol VehicleModel {...} 它是由许多不同的结构实现的。 (例如 CarModel、TruckModel 等)我有一个通用方法来获取
考虑下面的例子: class P {} class C: P {} let i: P = C() let iDT = i.dynamicType let CS = C.self iDT == CS i
我有这些类(class): AppDataProtocol.swift public protocol AppDataProtocol{ var logoImagePath : String!
基本上我想为 UIViewController 或任何其他默认的 swift 类添加一个类型别名。这背后的原因是我想抽象我的代码,这样我就可以通过使用 this 而不是 self.dynamicTyp
我真的很困惑地发现下面的代码只是拒绝与典型的“Unexpectedly found nil while unwrapping an Optional value”异常一起崩溃,这是你期望从强制展开 b
我正在尝试生成一个实现接口(interface)的动态类,但是其中一个或多个成员已经存在于基础中。我在 C# 中编译了以下代码,并在反射器中检查它以查看 C# 编译器的作用。 class BaseCl
有没有办法在 Swift 2.1 中实现这一点 class Apple { } class Fruit { let apples = [Apple](); } let fruit = Frui
我刚刚更新到 Xcode 8 和 iOS 10(使用旧版 Swift 语言版本)。 尝试再次编译我的项目一直很痛苦,即使仍然使用旧的 Swift 语法。这次我的一个函数使用了 NSBundle(for
你好,这是我的第一篇文章,如果我做错了什么,请不要太难过:D 我正在为一个大程序写一个 DeSerializer,为此,我有自己的类(class) public class DeSerializeab
在某些情况下:tableView 有不止一种类型的 UItableViewCell,并且这些单元格实现了函数“setData(_:)”。所以,在 "tableView(_ tableView: UIT
在我的应用程序中,我正在序列化消息以使用 protobuf-net 通过网络发送。每条消息都有一个标题信息的键值对列表。 但是,我遇到了一个异常,我已经能够用一个非常简单的例子重现它: [TestFi
我是一名优秀的程序员,十分优秀!