草庐IT

ios - 在 Swift(iOS)和 setValue forKey 中子类化 NSObject 的子类

我正在编写一个基础模型类,它是NSObject的子类,然后每个模型都是该模型的子类。创建模型时,我提供了一个Dictionary构成模型属性的属性。classModel:NSObject{varhi:String="hi"init(attributes:Dictionary){super.init()for(index,attribute)inattributes{self.dynamicType.setValue(attribute,forKey:index)}}}classUser:Model{varname:String="Donatello"}当我在NSObject的直接子类上

swift - 我在调用“for cache”时收到关于 "Extra argument ' forKey' 的错误

我使用了“NothingbutCache”的“HybridCache”。但这不能用于Swift4。所以我改为“存储”。这部分代码得到了这个错误信息Extraargumentincall这些是加载一些数据的代码。funcobject(forkey:String)->Observable{returnObservable.create{[weakself]observerinself?.cache?.object(key){(data:Data?)in不知道怎么解决缓存是这个。fileprivateletcache=try?Storage(diskConfig:DiskConfig(nam

ios - 设置值 :forKey with struct

我对(例如)UIView上的setValue:forKey方法有疑问。我有以下代码:letlabel=UILabel()label.layoutMargins=UIEdgeInsetsMake(10,10,10,10)letmargins=label.valueForKey("layoutMargins")在调试器中,margins的类型是(AnyObject?),值为Some。如果我使用变量margins来设置UIView上的值,这会按预期工作:letlabel2=UILabel()label2.setValue(margins,forKey:"layoutMargins")但是如果

swift - '-[__NSCFDictionary setObject :forKey:]: mutating method sent to immutable object' cause crash

我正在将NSUserDefault中的UserInfo字典指定为NSMutableDictionary。现在我的dicInfo是可变字典,但它包含的对象是不可变的。所以,当我试图替换这些值时,它会导致崩溃。我附上描述崩溃报告的图片。如果有任何解决方案,如何将可变字典的内部对象转换为可变。谢谢 最佳答案 NSDictionary类符合NSMutableCopying协议(protocol)。因此,我们可以在NSDictionary上调用mutableCopy方法来获取对象的NSMutableDictionary副本。letdicInf

swift - 对成员 'decode(_:forKey:)' swift4 的模糊引用

我正在解析需要从服务器上的字典(这是一种遗留数据格式)转换为客户端简单的字符串数组的响应。因此,我想将名为“数据”的键解码为字典,这样我就可以遍历键并在客户端创建一个字符串数组。init(fromdecoder:Decoder)throws{letvalues=trydecoder.container(keyedBy:CodingKeys.self)do{letsome_data_dictionary=tryvalues.decode([String:Any].self,forKey:CodingKeys.data)for(kind,values)insome_data_diction

swift - 值(forKey :) for NSObject not working in Swift 4

在Xcode9Beta中试用Swift4。由于某些原因,在NSObject上使用键值访问器时我遇到了崩溃。有什么想法吗?importCocoaclassPerson:NSObject{varname=""varage=0}letalpha=Person()alpha.name="Robert"alpha.age=53alpha.value(forKey:"name")//error:Executionwasinterrupted,reason:EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0). 最佳答案

ios - UIDevice.current.setValue(value, forKey : "orientation") does not work if phone held in landscape and tilted 45 - 90 degrees

我在用letvalue=UIInterfaceOrientation.landscapeRight.rawValueUIDevice.current.setValue(value,forKey:"orientation")强制呈现ViewController以横向显示。这是导航Controller流程的一部分。这按预期工作,但如果手机横向放置并倾斜45到90度,View将以纵向显示。该方法被调用并且预期值是正确的,但景观没有发生变化。这可以在带有导航Controller的基本项目中重现。有谁知道是什么导致了这种行为? 最佳答案 我也

ios - 向图层添加 CAAnimation 时, "forKey"参数的用途是什么?

我对iOS编程、Objective-C和一般编程非常新手,所以如果您觉得这个问题头脑简单得令人沮丧,请原谅。Apple网站上的文档通常都很棒,但我在尝试理解CoreAnimation的某些部分时遇到了一些麻烦。我想明确地为CALayer的位置设置动画。据我了解,我需要创建一个CABasicAnimation对象,使用fromValue、toValue等对其进行配置,然后使用此方法将其添加到图层:-(void)addAnimation:(CAAnimation*)animforKey:(NSString*)key我的问题是我不知道forKey:参数的意义是什么。从我在网上的例子中看到的,

ios - NSInvalidArgumentException',reas-[__NSPlaceholderDictionary initWithObjects :forKeys:count:]: attempt to insert nil object from objects[4]'

我收到错误NSInvalidArgumentException这是我的模型类+(NSArray*)users{NSDictionary*user1=@{@"username":@"masterphotographer",@"email":@"worldtravel@me.com",@"password":@"drowssap",@"age":@24,@"profilePicture":[UIImageimageNamed:@"person1.jpeg"]};NSDictionary*user2=@{@"username":@"Lotsoftots",@"email":@"ottersk

ios - setObject :forKey: and setValue:forKey: in NSMutableDictionary? 有什么区别

在查看文档时,我几乎看不出有什么大的不同。“值”和“对象”都是id类型,因此可以是任何对象。Key曾经是一个字符串,在另一种情况下是一个id。其中一个似乎保留了该对象,而另一个则没有。还有什么?哪一个适用于什么情况? 最佳答案 setValue:forKey:是NSKeyValueCoding的一部分协议(protocol),除其他外,它允许您从InterfaceBuilder之类的工具访问对象属性。setValue:forKey:在NSDictionary以外的类中实现。setObject:forKey:是NSMutableDic