草庐IT

NSString-Property

全部标签

swift - Swift Property Wrapper 能否引用其包装属性的所有者?

在Swift的属性包装器中,有人可以引用类的实例或拥有被包装属性的对象吗?使用self显然行不通,super也行不通。我试图将self传递给属性包装器的init()但这也不起作用,因为selfon当评估@propertywrapper时,配置尚未定义。我的用例是在一个管理大量设置或配置的类中。如果任何属性发生变化,我只是想通知感兴趣的各方某些发生了变化。他们并不真的需要知道哪个值,所以为每个属性使用类似KVO或Publisher的东西并不是真的必要。属性包装器看起来很理想,但我不知道如何将某种引用传递给包装器可以回调的拥有实例。引用资料:SE-0258enumPropertyIdent

swift - Property Observer swift 了解属性(property)的属性(property)

标题有点乱,但已经说明了一切。我想在一个属性的属性上有一个属性观察器:classA{varb:Binit(){b=B()}funcfoo(){}}classB{varc=0funbar(){}}vara=A()在这个例子中,为了说明我想要什么,我希望在设置a.b.c时调用a.foo()。如果我想改为调用a.b.bar(),这可以通过更改轻松完成varc=0到varc=0{didSet{bar()}}但是,我想做的事情没有简单的方法可以实现。这是我能想到的唯一可以按照我的意愿行事的方法:classA{varb:B{didSet{b.a=self}}init(){b=B()b.a=self

swift - 如何在 AES CryptoSwift 密码后将字节转换为 NSString

我正在使用CryptoSwift来加密我将在URL中传递的数据。为此,我需要将数据片段的数据类型设置为String以连接到NSURL请求中。数据加密后以字节为单位输出。如何将字节转换为无意义的字符串以传递PHP脚本可以解密的URL?我能够加密成UInt8,但是我认为不可能通过URL将它传递给PHP脚本,所以我需要将它变成一个字符串。代码:letstring="hello"letinput:[UInt8]=Array(string.utf8)letkey:[UInt8]=[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0

Swift 文档 : instance/type property/method notation

为了记录Ruby,我会写,例如,Time::now或Time#day。我如何记录Swift?也就是说,在编写Swift文档时,类型及其1)类型属性或方法或2)实例属性或方法的表示法是什么?例如,在Ruby文档中,符号::(两个冒号)表示类属性或方法,而符号#(数字符号、散列、井号标签),或井号)表示一个实例属性或方法。所以,Time::now表示now是Time的类属性或方法,而Time#day表示day是Time的实例属性或方法。Swift文档有这样的符号语法吗?我知道Swift文档的函数符号——例如,Swiftappend(_newElement:Element)methodfor

Swift 协议(protocol)扩展 : cannot assign to property: '' is a get-only property

我想我不明白协议(protocol)扩展应该如何工作。我试过这个:protocolP{varh:[String:Any]{setget}}extensionP{varh:[String:Any]{get{return[:]}set{}}}structS:P{init(){self.h=["o":"o"]}}我的目标是S具有P的属性,并且不需要在结构定义中重新声明它。但是,当我创建lets=S()时,s.h始终等于[:]而不是["o":"o"].当然,这是因为我的setter是空的,但是我不知道如何去做我想在这里实现的。感谢您的帮助。 最佳答案

swift - 使用 Swift 使用 session.dataTaskWithRequest() 获取 URL 的内容 - 数据不会转换为 NSString

为什么我的下面的代码会成功返回状态代码为200的数据,但无法将返回的NSData转换为NSString?varsession:NSURLSessionfuncinit(){letconfig=NSURLSessionConfiguration.defaultSessionConfiguration()session=NSURLSession(configuration:config)}funcgetStatic(url:NSURL){letrequest=NSMutableURLRequest(URL:url)letdataTask=session.dataTaskWithReques

objective-c - swift 2.1 : Property cannot be marked dynamic?

如何修复此编译错误?dynamicvarusers=[User]()PropertycannotbemarkeddynamicbecauseitstypecannotberepresentedinObjective-C我需要dynamic以便某些ViewController可以观察(通过KVO)users并在users更改时更新他们的View。 最佳答案 正如错误所说错误,不是@objc:NSObject:classA{}funcsomething(){dynamicvara=[A]()}应该改为:@objcclassA:NSObj

property_tree:无法设置默认属性值?

下面的代码从INI文件读取属性。但是,我希望该属性具有默认值。我这样做put,在阅读INI文件之前,然后用get.如果不需要默认值,则可以正常工作,并且程序输出testvalis2。但是,如果我在INI文件中评论条目(如图所示),则程序输出Nosuchnode(foo.bar)。换句话说,pt.put不是设置默认值。有什么想法吗?我正在Boost105300。#include#include#includeintmain(){boost::property_tree::ptreept;inttestval=0;try{pt.put("foo.bar",1);//setadefaultvalue

ios - 快速将 NSString 转换为 NSDate

我正在尝试将@"4:30PM"(字符串)转换为NSDate格式。我无法做到这一点,而且我得到了意想不到的结果。我的代码varstrDate="4:30PM"letdateFormatter=NSDateFormatter()dateFormatter.dateFormat="h:mma"letdate=dateFormatter.dateFromString(strDate)print(date)输出:可选(2000-01-0111:00:00+0000) 最佳答案 要删除可选的,请将您的date常量定义为:letdate=date

ios - 如何将 NSString 转换为 Int?

我对Apple编程完全陌生,但在阅读Swift之后我觉得它看起来很有趣。我正在尝试在命令行上制作一个简单的数字猜谜游戏,但我无法将整数转换为字符串。我已经尝试在互联网上搜索很多方法来执行此操作,但我不知道出了什么问题。我不想直接接受用户的输入作为整数,我宁愿将它从字符串转换为整数以便更容易处理错误(就像它在Python中的处理方式一样)。这就是我所做的:importFoundation//GetInputletstandardInput=NSFileHandle.fileHandleWithStandardInput()//Converttointfunctionfuncconvert