草庐IT

swift - 在没有 unsafeBitCast 的情况下将 UnsafeMutablePointer 值分配给 UnsafePointer

我正在使用一个CAPI,该API定义了一个包含constchar*的结构和一个返回char*的函数,我正在尝试找到执行赋值的最佳方法。有没有办法不使用unsafeBitCast来做到这一点?如果我不进行转换,则会出现此错误:Cannotassignvalueoftype'UnsafeMutablePointer'(aka'UnsafeMutablePointer')totype'UnsafePointer!'(aka'ImplicitlyUnwrappedOptional>')此外,下面使用pair()的pairPtr初始化是否会在堆栈上分配一对结构以初始化堆上分配的对,因为对于结构必

ios - 如何在 Swift 4 中将 Any 转换为 Date?

我从服务器收到一个日期://ItcomesfromserverasAnylet.letuserInfo:[AnyHashable:Any]letuserInfoDic=userInfoasNSDictionaryuserInfoDic.value(forKey:"gcm.notification.date")asAny//printsOptional(2018-04-26)如果我尝试转换为日期,则会抛出错误:‘Any?’isnotconvertibleto'Date';didyoumeantouse'as!'toforcedowncast?当我强制执行时,返回一个fatalerror。

swift - 如何在 swift 中定义显式转换运算符?

背景我有一个想要隐藏实现细节的类。classFoo{vari:Int}letf=Foo()有没有一种方法可以定义显式转换运算符,以便在fasInt上调用它?如果没有,是否有我应该使用的规范方法名称,如asInt()->Int? 最佳答案 我不知道这是你想要的,但你可以像Int初始化器一样实现强制转换:extensionInt{init(_foo:Foo){self=foo.i}}letf=Foo()f.i=12letintVal=Int(f)//->12 关于swift-如何在swift

ios - swift 。 Viewcontroller 知道子类

我有一个tableview单元格的子类。classprofileTableViewCell:UITableViewCell{@IBOutletweakvartableviewUsernameLabel:UILabel!@IBOutletweakvartableviewMessageLabel:UILabel!@IBOutletweakvartableviewTimeStamp:UILabel!}我需要在我的ViewController中访问这些标签。我该怎么做。我对编程相当陌生。-我在下面的标签上明显地看到“未解析的标识符”。我如何访问这些标签?-也尝试将cell.tableViewU

swift - 为什么从 Float 转换而来的 CGFloat 不表现出 CGFloat 行为?

我有一个简单的例子,我尝试画一个圆。下面这段代码没有给我一个圆圈。importUIKitclassPlayingCardView:UIView{overridefuncdraw(_rect:CGRect){ifletcontext=UIGraphicsGetCurrentContext(){context.addArc(center:CGPoint(x:bounds.midX,y:bounds.midY),radius:100.0,startAngle:0,endAngle:CGFloat(2.0*Float.pi),clockwise:true)context.setLineWidt

swift - 如何在 Swift 中允许自定义类型和现有类型之间的类型转换

我已经制作了一个自定义的Fraction类和一个Double值的扩展,以将它们转换成这样的Fraction。这是我的代码(简化):classFraction{varwholeNumber:Int?varnumerator:Intvardenominator:Intinit(wholeNumber:Int?,numerator:Int,denominator:Int){guarddenominator>0else{fatalError("Denominatorcan'tbeequaltozeroornegative")}ifwholeNumber!=nil&&numerator双重扩展:

ios - 将 Dictionary 转换为 AnyObject 时出现编译器错误?

我正在尝试在Swift中做一个简单的扩展,这将使使用NSJSONSerialization.dataWithJSONObject将字典转换为JSONNSData变得容易。.extensionDictionary{functoJSONData()->NSData!{returnNSJSONSerialization.dataWithJSONObject(self,options:nil,error:nil)}}我不太明白为什么这不会编译。它给了我一个类型错误:Cannotdowncastfrom'Dictionary'tonon-@objcprotocoltype'AnyObject'有

快速编译错误: Downcast from 'String?!' to 'String' only unwraps optionals; did you mean to use '!!' ?

升级到cocoapods1.0后,我得到以下代码行的编译错误:varstrName=String()varstrEmail=String()varstrFacebookID=String()varstrPassword=String()varobjHelper=Helper()....letstrFirstName=result["first_name"]as!StringletstrLastName=result["last_name"]as!Stringself.strName=strFirstName+"_"+strLastNameself.strEmail=result["em

arrays - 这个 [AnyObject] 如何作为 AnyObject 返回?

importCocoaclassBrain{varinternalProgram=[AnyObject]()varprogram:AnyObject{get{return(internalProgramasAnyObject)}}}varsavedProgram:AnyObject?letbrain=Brain()funcsave(){savedProgram=brain.program}这个internalProgram:[AnyObject]如何返回AnyObject而Xcode不给出警告或错误?我知道program的类型已经设置为AnyObject但我的意思是这怎么能工作而不应该

casting - 在 Swift 中将字节转换为字符

我正在使用NSInputStream来读取消息。read方法以字节为单位返回msg,与Java中相同。我想获取字节并将其打印为char(例如在Java中println((char)97)//prints"a")我如何在Swift中做到这一点?谢谢。 最佳答案 这个有效:letb:UInt8=97print(Character(UnicodeScalar(b)))如果你想让它更干净,你可以扩展UInt8和Int:extensionUInt8{varchar:Character{returnCharacter(UnicodeScalar