草庐IT

ios - 实现基于在 Swift 中作为参数传递的类的动态初始化

我想根据传递给函数的类来创建对象。首先,我有一个接口(interface),每个可生成的对象都应该符合:interfaceGeneratable{init(raw:NSDictionary)}和一个将类作为参数的函数funcgenerateDynamicObjectFromClass(generatable:Generatable.Type){varsomeJSONData:NSDictionary=NSDictionary()varmyGeneratedObject:Generatable=generatable(raw:someJSONData)//custominitialise

Swift - 创建一个可散列的类元组结构

我正在尝试创建一个可散列的类似元组的对象,它可以保存任何类型的对象以用作字典中的键。我在两个地方使用该结构,一次保存2个Int,一次保存一个double和前面提到的2Int结构。我目前的实现有点作弊。我创建了一个Suple结构,它包含两个int,并且是可哈希的,然后是另一个结构Duple,它包含一个double和一个suple,并且是可哈希的。这可行,但我认为必须有更好、更简洁的方法来实现它。在搜索和弄乱泛型之后,我似乎无法让它工作,所以任何建议将不胜感激。编辑:除了相等声明中的==之后,我的代码实际上看起来与Anton的代码几乎相同。我没有意识到这是必需的,在添加之后,它现在可以工作

swift - 无法在一个特定的类文件中使用 Swift 调试器

我可以使用调试器查看我的应用程序中除一个类之外的任何地方的内存值。每次尝试时,无论我尝试po什么值,我都会收到相同的错误消息:(lldb)posearchInstitution.nameerror::2:1:error:cannotconvertvalueoftype'Int'toexpectedargumenttype'Device'searchInstitution.name^~~~~~~~~~~~~~~~~:15:7:error:cannotconvertvalueoftype'Int'toexpectedargumenttype'Device'if(1==1){^Device是

swift - 引用符合协议(protocol)的类

假设我有一个如下所示的协议(protocol):protocolFoo{varbar:Bool{getset}}现在我有了符合Foo协议(protocol)的ViewController;classFooViewController:UIViewController,Foo{...}在另一个类中我想做这样的事情:classFooClass{varviewController:UIViewController?//thisshouldconformtoFooprotocolfuncsetViewController(viewController:UIViewController){ifl

swift - Playground 内的类(class)扩展

我的playground源文件夹中有一个UIVIew子类(它是一个公共(public)类),我试图只将这个类的一部分作为扩展放入我的主playground文件中。当我在Playground上声明以下内容时publicextensionSortingAlgorithmView{publicfunctypeTest(){print("dfasfndjasfasfdasfdasftest")}}然后在我的子类中调用typeTest()它告诉我没有名为typeTest的函数。 最佳答案 交互式页面不会与源文件一起运行;源文件首先被编译,然后

swift - 在 Swift 中声明符合协议(protocol)的类

在objective-C中我们可以声明一个符合某些协议(protocol)的类@property(nonatomic,strong)ClassobjectRestorationClass;并且可以给它赋值作为someObject.objectRestorationClass=[SomeClassclass];问题是:我怎样才能在swift做到这一点?我尝试使用varobjectRestorationClass:UIObjectRestoration!和someObject.objectRestorationClass=SomeClass.self但它给了我错误'SomeClass.Ty

Swift 3,协议(protocol)中的函数返回符合协议(protocol)的类的对象

我已经阅读了很多关于类和协议(protocol)的文章,但仍然没有找到解决方案。可能是我没有完全理解它们。所以有一个简单的协议(protocol)(删除了一些与问题无关的部分):protocolInfoObject:NSObjectProtocol{varstatusImage:UIImage?{get}funcviewControllerForItemIndex(_index:Int?)->UIViewController?}但我希望函数viewControllerForItemIndex不仅返回类型为UIViewController?的对象,而且它应该符合协议(protocol)I

swift - 无法在符合协议(protocol)的类上调用类型方法

我的代码非常简单。我的协议(protocol):protocolBaseEntity{classfuncgetInstance(sourceObject:[NSObject:AnyObject],context:AnyObject!)->BaseEntityinit()}然后在另一个类中我有这个方法:privatefuncconvertJSONDictionaryIntoModel(jsonDictionary:[NSObject:AnyObject],mapClass:BaseEntity.Type)->BaseEntity{letobject=mapClass.getInstanc

swift - 指定一个实现协议(protocol)的类

这个问题在这里已经有了答案:InSwift,howcanIdeclareavariableofaspecifictypethatconformstooneormoreprotocols?(5个答案)关闭6年前。鉴于有2个协议(protocol)P1和P2,可以指定一个符合这两个协议(protocol)的类型,例如:typealiasP=protocol是否有类似的方法来指定一种类型,它是一种类并且也符合协议(protocol),例如像这样的东西(这是行不通的):typealiasP=UIView:P1

swift - Swift Singleton 可以是一个具有纯类函数的类吗

感觉讨论在Swift的几次迭代前就停止了,但我很好奇,在讨论中,从未有人建议(或者如果我从未见过)单例可以只是一个纯粹的类类函数,例如-classMySingleton{privatestaticvarsomeVar:String?privatestaticvarsomeOtherVar:SomeType?classfuncstart(){//etc...}classfuncdoSomething(){//etc...}//etc,etc...}我们有什么不应该这样做的充分理由吗?我想不出。 最佳答案 你想达到什么目的?根据我的经验