草庐IT

dependent-type

全部标签

ios - 'type' 不是 'T' 的成员类型

声明编译器错误:type:T.type:'type'isnotamembertypeof'T'publicclassParseRealmSync{publicstaticfuncsynchronize(type:T.type){varallObjects=[type]()varlimit=0varskip=0varquery=PFQuery(className:T.parseClassName(),predicate:nil)query.limit=limitquery.skip=skipquery.findObjectsInBackgroundWithBlock{(objects,e

ios - Xcode 错误 "value of type ' [UIViewController ]' has no member ' firstObject'”

我正在尝试创建thisGitHubrepository的Swift版本.我首先将所有代码从Objective-C直接转移到Swift,这导致了很多错误(321行文件中有60个错误)。对于这一行特定的代码self.currentViewController=self.childViewControllers.firstObject我收到这个错误:Valueoftype'[UIViewController]'hasnomember'firstObject'我试过添加as!UIViewController,并在尽可能多的位置放置感叹号和问号。我从建议的帖子中尝试的所有事情都没有帮助。

swift - "Type of expression is ambiguous without more context"多维数组错误

我正在尝试创建一个数组,该数组最好以这种格式存储对象[[[String,CGPoint,Bool]]],但是到处都是错误,所以我决定将其设置为[[[AnyObject]]]。这是我声明数组的代码:varsavePlayerState:[[[AnyObject]]]=[]如您所见,它是一个多维数组,我需要在其中存储3个内容:当前时间、玩家位置和一个简单的Bool。以下是我尝试将数据保存到数组的方式:savePlayerState.append([timeLabel.text,player.position,isPlayerAlive])我的错误是:Typeofexpressionisam

objective-c - objective-c 类报告的扩展 "use of undeclared type"

我正在尝试为“FMDatabase”编写一个扩展...一个Objective-C类。extensionFMDatabase{}我在这个项目的其他swift代码中使用FMDatabase没有问题。然而,在这个快速扩展中,它无法通过“使用未声明的FMDatabase类型”进行编译。 最佳答案 FMDatabase上的Swift扩展没有问题。我已经顺利完成了。也许您是在无法访问FMDatabase的单独目标中执行此操作。或者您可能忽略了在您的桥接header中为此目标添加#import"FMDB.h"。此外,如果您只是添加了桥接heade

swift - 条件一致性 : Using 'T' as a concrete type conformance to 'T' is not supported

这个问题在这里已经有了答案:Protocoldoesn'tconformtoitself?(3个答案)关闭3年前。我有一些非常基本的代码,因为我正在尝试了解条件一致性:protocolAnimal{varname:String{get}}protocolSocial{funcspeak()}classCat:Animal,Social{varname:Stringinit(name:String){self.name=name}funcspeak(){print("Meow")}}classDog:Animal,Social{varname:Stringinit(name:String

swift 2.0 : Creating a Collection Type of Objects that conform to a Generic Protocol

例如:protocolSomeProtocol{typealiasTfuncdoSomething(something:T)}leta=Array()我想要一个数组,它是一个符合SomeProtocol的对象数组。这在理论上似乎很好,但我收到以下错误消息:Cannotbeusedasagenericconstraintbecauseitcontainsassosciatedtyperequirements.我想这是有道理的,毕竟Array也是一个通用结构,因此编译器将无法确定SomeProtocol和的实际类型数组是通用的。所以我的问题是-我觉得我应该能够拥有一个符合SomeProto

swift - fatal error : can't unsafeBitCast between types of different sizes (using gamekit)

使用此处的GameKit多人游戏功能(EasyGameCenter):https://github.com/DaRkD0G/Easy-Game-Center-Swift当两个玩家连接时,我在这条线上崩溃了letplayerIDs=match.players.map{$0.playerID}as![String]在控制台中使用这个fatalerror:can'tunsafeBitCastbetweentypesofdifferentsizes有什么想法吗?这里是完整的功能,方便引用:@available(iOS8.0,*)privatefunclookupPlayers(){guardl

swift 3 : How to catch error if NSCoder decodeX function decodes wrong value type?

Swift3改变了NSCoder的工作方式。正如其他SO问题所提到的,要解码Int或Bool等值类型,您必须使用特定函数。例如,decodeInteger用于解码Int值,如下所示:letvalue=decodeInteger(forKeykey:TestKey)但是,如果decodeInteger返回的值是String或Bool或Int以外的值怎么办?或者如果TestKey实际上映射为空,因为它包含错误的key数据怎么办?如何优雅地捕获这些错误? 最佳答案 在非整数键上使用decodeInteger会引发异常。遗憾的是,这是一个S

ios - swift 3 : How to assign variable of different option types without multiple if let statements?

首先,如果标题含糊不清,我深表歉意。请随意更改它以符合问题描述。我会尽力描述我的问题,但首先这里有一段代码:ifletvc=currentVCas?FirstViewController{vc.doSameMethod()}elseifletvc=currentVCas?SecondViewController{vc.doSameMethod()}elseifletvc=currentVCas?ThirdViewController{vc.doSameMethod()}基本上,我使用iflet语句检查可选的nil,然后解包并赋值。我在所有3个ViewController中都有doSam

ios - swift .framework 更新导致 'use of undeclared type errors'

如果我创建一个新的xcode7项目,然后将我的whatever.framework添加到该项目并导入框架,然后声明其中一个类的实例,它工作正常。如果我删除框架并尝试重新安装,我会在我尝试实例化的任何类上遇到“使用未声明的类型错误”。我已经尝试了所有我能想到的基本清理、删除派生数据和重新启动。 最佳答案 我的问题与更新框架完全无关。那是一条红鲱鱼。在那个过程中的某个地方,我设法使我的构build备不匹配。如果我在选择“通用ios设备”的情况下构建我的框架,但在我正在构建模拟器的应用程序中使用它,我会看到此错误。如果我将我的应用程序设置