草庐IT

publication

全部标签

swift - 在 Swift 中,访问修饰符 internal 和 public 有什么区别?

Swift提供了5种访问修饰符:open、public、internal、fileprivate和private.我对这些说明符的了解,(主要来自link和link_2)open意味着类和类成员可以在定义模块(目标)内外进行子类化和覆盖。fileprivate将实体的使用限制在其定义的源文件中。基本上可由单个文件中的多个类访问。private将实体的使用限制在其封闭声明中。现在,public和internal对我来说几乎是一样的:-public表示类和类成员只能在定义模块(目标)内进行子类化和覆盖。internal使实体能够在定义模块(目标)中使用。此外,如果没有提及其他内容,这恰好是

ios - 从标记为 "public"的不同目标访问类

我创建了一个新目标并添加了一个具有访问修饰符“Public”的类。但是我看不到这个类。从文档中我读到“公共(public)实体旨在用作API,并且可以被导入模块的任何文件访问,例如作为在您的几个项目中使用的框架。”所以我的猜测是我没有导入模块/目标?https://developer.apple.com/swift/blog/?id=5https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html

swift - 如何访问公共(public)常量而不必像在 C# 中那样实例化类

不需要创建类的实例来访问公共(public)常量。我最近开始使用Swift工作,所以我一定遗漏了一些东西。在这个简单的例子中:publicclassMyConstants{publicletconstX=1;}publicclassConsumer{funcfoo(){varx=MyConstants.constX;//Compilererror:MyConstantsdon'thaveconstX}}这个foo代码给出了一个编译错误。为了工作,我需要像这样创建MyConstants的实例:publicclassConsumer{funcfoo(){vardummy=MyConstan

ios - 无法声明具有内部要求的公共(public)协议(protocol)扩展

我正在编写一个媒体播放器应用程序,并创建了我自己的框架来管理所有播放器功能。在这个框架中,我有一个名为PlayerControllerType的公共(public)协议(protocol)和一个内部协议(protocol)_PlayerControllerType。在PlayerControllerType中,我声明了所有方法和属性,它们应该可以从框架外部访问。在_PlayerControllerType中,我定义了几个属性,框架内实现PlayerControllerType的具体类型使用这些属性。其中一种类型是PlayerController。其声明如下:publicclassPla

ios - 如何在不使用第三方 url 的情况下获取 iPhone 的公共(public) IP 地址

对于我的项目,我需要获取iPhone的公共(public)IP地址,有很多示例可用,它们通过使用外部/第三方URL显示公共(public)IP地址。我只想知道如何在不使用其他url的情况下提取iPhone的IP地址。注意:-我使用了这个但只显示本地IP地址,我需要公共(public)IP地址funcgetIPAddress()->[String]{varaddresses=[String]()//Getlistofallinterfacesonthelocalmachine:varifaddr:UnsafeMutablePointer=nilifgetifaddrs(&ifaddr)=

ios - 语句 "public typealias AnyObject"如何使 AnyObject 成为协议(protocol)?

当我按下Command并单击AnyObject导航到AnyObject的界面时,我遇到了以下定义:publictypealiasAnyObject我看到这条评论写在定义之上:Theprotocoltowhichallclassesimplicitlyconform.好吧,我不明白这个定义如何在没有显式使用关键字protocol的情况下使AnyObject成为protocol。此外,它是一个没有=someType的typealias,这是一个无效的语句。我不能写这样的声明:publictypealiasSomeOtherObject它给出了一个编译错误。谁能解释一下这里到底发生了什么?

swift - public init中的问号是什么意思?(coder aDecoder : NSCoder)?

我不认为publicinit?(coderaDecoder:NSCoder)中的问号是关于可选项的。此外,当我覆盖它时,我发现我根本不需要写问号。那么这到底是什么意思呢?---更新---下面的评论帮助我弄明白了。它被称为“可失败的初始化程序”。另一个可以使概念更容易理解的例子是UIFont的便利初始化,因为UIFont可能不存在。public/*notinherited*/init?(namefontName:String,sizefontSize:CGFloat) 最佳答案 它被称为可失败初始化器。在TheSwiftProgram

ios - 为什么需要在公共(public)访问控制 viewController 中重写 viewDidLoad 之前设置 public

为什么在公共(public)访问控制viewController中覆盖viewDidload之前需要设置publicpublicclasscustomViewController:UIViewController{overridepublicfuncviewDidLoad(){super.viewDidLoad()}}如果我删除public,Xcode会给出错误警告! 最佳答案 错误信息相当明确:Overridinginstancemethodmustbeasaccessibleasthedeclarationitoverrides

init - 我如何声明一个公共(public)接口(interface),比如苹果。另一种方式,隐藏实现

就像UILabel类一样:classUILabel:UIView,NSCoding{vartext:String!//defaultisnilvarfont:UIFont!//defaultisnil(systemfont17plain)vartextColor:UIColor!//defaultisnil(textdrawsblack)varshadowColor:UIColor!//defaultisnil(noshadow)varshadowOffset:CGSize//defaultisCGSizeMake(0,-1)--atopshadow....}但是如果我这样定义一个类,

ios - 除非我登录 iCloud,否则 CloudKit 公共(public)数据库无法正常工作

我正在尝试使用CloudKit从公共(public)数据库中读取数据。letpublicDB=CKContainer.defaultContainer().publicCloudDatabaseletquery=...publicDB.performQuery(query,inZoneWithID:nil){results,errorin//"InternalError"(1/1000);"ReceivedadidCompleteWithErrorwithoutreceivingaresponsefromtheserver">)}但是,一旦我登录到iCloud,我就会按预期取回数据。根