草庐IT

objc_class

全部标签

ios - 将 ObjC 转换为 Swift - UnsafePointer<Void> 不可转换为结构类型

我正在学习用objective-c编写的教程here并且我已经将大部分内容转换为swift,但是有些行就是行不通。例如,我转换了以下结构:typedefstruct{MessageTypemessageType;}Message;typedefstruct{Messagemessage;}MessageMove;为此:structMessage{varmessageType:MessageType}structMessageMove{varmessage:Message}在另一行中,本教程执行以下操作:-(void)match:(GKMatch*)matchdidReceiveData

objective-c - 如何在 Swift 中将 Objc-C NSUInteger[] = {0,1,2} 表示为 UnsafeMutablePointer<UInt>?

Objc-Cheader定义:-(int)printPDFAtPath:(NSString*)pdfPathpages:(NSUInteger[])indexeslength:(NSUInteger)lengthcopy:(int)nCopy;使用此函数的示例objc-C代码:NSUIntegerpageIndexes[]={0};printResult=[self.ptpprintPDFAtPath:selectedPDFFilePathpages:pageIndexeslength:lengthcopy:self.numberOfPaper];swift期望:funcprintPD

xcode - 删除 ObjC 版本后,无法将 IBOutlet 或 IBAction 连接到用 Swift 编写的 View Controller

我在XCode5中创建了一个项目并将其导入到XCode6beta中,后来我决定要用Swift重写其中一个ViewController。所以我首先删除了Controller文件(.h和.m)并在Swift文件扩展名中添加了名为controller的相同类。现在,当我尝试通过按住ctrl从小部件拖动到文件来连接Storyboard中的socket和Action时,我无法创建新连接。这是一个错误还是我需要做其他事情才能让它工作? 最佳答案 似乎是Xcode6中的错误。您可以通过将身份检查器中的ViewController自定义类更改为另一

class - 如何用 Swift 写 : [MyClass class]?

我想引用Swift中的一个类。在Objective-C中,我写了这个表达式:[MyClassclass]它在Swift中如何工作?我需要它来将其分配给委托(delegate)人。我试过这个:MyClass.class,但得到这个错误:Expectedmembernamefollowing'.' 最佳答案 在swift中是:lettype=MyClass.self改为从实例获取类型:varx=MyClass()lettype=x.dynamicType 关于class-如何用Swift写:

为何出现Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes ...

当在IDEA中连接Redis时出现"JavaHotSpot™64-BitServerVMwarning:Sharingisonlysupportedforbootloaderclassesbecausebootstrapclasspathhasbeenappended"错误,通常是因为类加载器(ClassLoader)的共享机制引发的警告。Java的类加载机制涉及到BootstrapClassLoader、ExtensionClassLoader和ApplicationClassLoader。BootstrapClassLoader负责加载核心类库,ExtensionClassLoader负责

ios - SpriteKit : find all descendants of SKNode of certain class?

Thisquestion显示了如何找到属于某个类的SKNode的所有子节点,但是如果我们想要属于某个类的所有后代(例如,孙子)怎么办?在SpriteKit中是否有一种本地方法可以做到这一点,或者是根据上述问题创建解决方案的递归形式的唯一选择?SKNode文档突出显示了一个搜索功能,可以让您找到具有特定名称的后代,但是有没有办法按类而不是名称过滤后代?如果可以避免,我们不想为节点分配名称。我们正在使用Swift3。 最佳答案 只需将此扩展添加到您的项目importSpriteKitextensionSKNode{funcallDesc

swift - 为什么 Swift 不允许在 class init 中给 self 赋值,而在 protocol init 中却不允许?

我经常发现自己喜欢在struct、enum和protocol的初始化器中,我可以编写类似self=someValue。当我有一些预定义值或正在克隆现有值时,这非常有用。但是,此语法不适用于classes。我也不知道为什么。Cannotassigntovalue:'self'isimmutable如果问题是双重初始化,Swift编译器知道我是否、何时以及在何处调用指定的super或self初始化器,因此它知道我是否完成初始化此实例。如果担心的是我还没有调用指定的初始值设定项,那么它应该没问题,因为我只是让这个实例成为对另一个实例的引用(2个变量1个指针)。如果担心的是并发访问可能导致se

class - 在声明中或使用 init 初始化 Swift 类变量?

在Swift中,您可以在声明变量时在类中初始化变量:varname:String="John"或者您可以使用init进行初始化:varname:Stringinit(name:String){self.name=name}您使用哪个版本以及何时使用? 最佳答案 除非您提供初始值作为初始化参数,出于显而易见的原因,您必须在初始化器中这样做,否则您可以使用两种方式中的任何一种。我的规则是:如果有多个初始化器,并且属性在所有情况下都使用相同的值初始化,我更喜欢内联初始化如果属性是(或应该是)不可变的,我更喜欢内联初始化如果属性在实例生命周

ios - 必须调用父类(super class) 'UITableViewHeaderFooterView' 的指定初始化程序

我正在努力将我的项目升级到Swift2,我遇到了两个错误,我不明白为什么我以前没有这些错误。第一个是“Initializerdoesnotoverrideadesignatedinitializerfromitssuperclass”第二个是“必须调用父类(superclass)‘UITableViewHeaderFooterView’的指定初始化程序”这是我类(class)的代码:importUIKit@IBDesignableclassCardShadowTableViewHeaderFooterView:UITableViewHeaderFooterView{//MARK:-Pu

objective-c - Throwing 方法不能是@objc 协议(protocol)的成员,因为它返回类型为 'Bool' 的值

我收到以下错误:Throwingmethodcannotbeamemberofan@objcprotocolbecauseitreturnsavalueoftype'Bool';return'Void'oratypethatbridgestoanObjective-Cclass定义Swift协议(protocol)时也需要桥接到Objective-C:@objcpublicprotocolSaving{funcsave()throws->Bool}是否有其他方法可以定义返回Bool的Swift方法,可能会抛出错误并与Objetive-C兼容? 最佳答案