草庐IT

final-class

全部标签

swift - 我什么时候应该使用 class-only 协议(protocol)而不是 @objc?

当我们想将协议(protocol)采用限制为类类型时,我们可以使用:class协议(protocol)或@objc协议(protocol)。但是,我没有看到“仅类协议(protocol)”相对于@objc协议(protocol)的优势。我知道的区别:大小@objc更节省空间。@objcprotocolProtocolObjC{}protocolProtocolClass:class{}sizeof(ProtocolObjC)//->8sizeof(ProtocolClass)//->16检查协议(protocol)一致性仅适用于@objc协议(protocol)@objcprotoco

class - Swift:属性是实现协议(protocol)的 UIView 子类

这是场景。我有许多不同的View要显示,具体取决于我向用户显示的模型对象。所以我已经建立了一个协议(protocol),任何实现它的View都可以呈现。classMyItem{/*somemodelproperties*/}protocolItemView:class{//someprotocolmethods(e.g.updateWithItem(),etc)funcsetupItem(item:MyItem)}classSpecificItemView:UIView,ItemView{/*therewillbemultipleclasseslikethis*/funcsetupIt

class - Swift的实例方法和类型方法的区别

我是Swift编程的新手(我有HTML/CSS、JS、Jquery、PHP等网络语言经验)。我正在浏览Apple文档和各种在线资源,但我似乎无法找到我的问题的答案:实例方法和类中的类型方法有什么区别?我理解两者的语法以及如何使用两者,但我不确定什么时候使用其中一个比另一个更好?您是否有理由希望在不创建所述类的实例的情况下调用类中的方法?我无法全神贯注地思考一个人比另一个人使用的实际例子。谢谢! 最佳答案 当您想将某种功能连接到类而不强制客户端实例化该类,并且方法不依赖于特定对象的状态时,类方法很有用。在面向对象的编程方法中,它们通常

class - 带有 NSBundle 的段错误 11(对于类 :) and multiple type constraint (protocol + class)

以下代码在模拟器中运行良好,但在创建存档时抛出“Commandfaileddutosignal:Segmentationfault:11”。funcpopAction(){MyViewController.pop(self)}classfuncpop(controller:T){letbundle=NSBundle(forClass:controller.dynamicType)//…}下面的编译就好了:letbundle=NSBundle(forClass:object_getClass(self))//orletbundle=NSBundle(forClass:self)dynam

ios - 如何在 swift 类中将变量设置为 self(class)? iOS 代码

我有一个名为Node的类。当我初始化Node时,我希望它的前一个节点和下一个节点始终指向它自己——形成一个循环无限的节点串。classNode{varname:String!varpreviousNode:Node=self//errorvarnextNode:Node=self//errorinit?(name:String){ifname.isEmpty{returnnil}self.name=name}funcsetPreviousNode(prevNode:Node){self.previousNode=prevNode}funcsetNextNode(nextNode:Nod

objective-c - XCode 6.4 : Objective-C classes are not visible to code completion inside Swift 1. 2 文件

我正在处理一个项目,该项目有一些用Swift编写的类和一些用Objective-C编写的类,当在swift文件中工作时,用Objective-C编写的类中没有一个对代码完成是可见的,但所有用Swift编写的类是。当我编译项目时,它构建并运行得很好,所有“错误”在编译期间都消失了。当我尝试使用Command-Click类名时,它的实现是用Objective-C编写的,我收到错误:“找不到符号”。关于哪里出了问题有什么想法吗?我在XCode6.3中没有这些问题。 最佳答案 当我将Swift代码添加到现有的Objective-C项目时,我

swift - 从其父类(super class)重写方法

我收到这个Swift错误:Methoddoesnotoverrideanymethodfromitssuperclass!为什么会出现这个?相关代码如下:classTouchyView:UIView{overridefunctouchesBegan(touches:NSSet?,withEventevent:UIEvent){updateTouches(event.allTouches())}overridefunctouchesMoved(touches:NSSet?,withEventevent:UIEvent){updateTouches(event.allTouches())}

ios - iPhone : changing background image when rotating device using size classes

我放置了一张需要填满iPhone屏幕的背景图片。在纵向View中很好,但是当我旋转设备时,顶部被裁剪了,这是我不想要的。最好的似乎是一张用于纵向View的图像和一张用于横向View的图像。我尝试使用尺寸等级,为紧凑型W和任意H分配1个图像,为任意W和紧凑型H分配1个图像。我无法让它工作。我正在使用Xcode6.3和swift1.2。我使用iOS8essentials(NeilSmyth)第24章中的说明制作了另一个应用程序,但它不起作用。我下载了文件“universal_images”,以为我做错了什么,但它也不起作用。 最佳答案

swift - 在 Swift 中访问父类(super class)的私有(private)方法

我想在其子类中使用父类(superclass)的私有(private)成员和方法,但仍然不希望它们在实例级别可见。好吧,我认为Swift中没有这种可能性,因为它只有私有(private)/内部/公共(public)访问修饰符。但也许有一些解决方法?我听说在其他语言中流行保护修饰符,但它实际上与我的观点相反。难道所有语言都没有这种可能吗?如果我的子类层次结构中经常需要这个东西,我是不是做错了什么? 最佳答案 您可以让子类访问其父类(superclass)的私有(private)成员,但它必须与父类(superclass)位于同一文件中

android - Activity 布局 : Fragment class: vs android:name attributes

我已阅读有关Fragments的文档在Android开发人员指南中,我看到有时他们使用Fragment标记属性android:name指定要实例化的类,有时他们使用class:属性:android:name和class:可以互换吗?如果我在Eclipse中使用自动完成功能,它们都会显示相同的文档提示(即属性提供要实例化的类名)。当要实例化的类的名称与java文件名不同时,也许您必须使用第二个,例如FragmentLayout.java文件中的TitlesFragment?或者我可以将语法package.fileDOTjava$Class也与android:name属性一起使用吗?我想要