草庐IT

getter-only

全部标签

ios - 使用 Objective-C 属性 getter 实现 Swift 协议(protocol)

我想为Swift中所有可突出显示的View创建一个共同的祖先。我希望已经存在的实现highlighted属性的UIKit类开箱即用,所以在阅读thisanswer之后并检查theObjective-CgetterisdefinedasisHighlighted我将协议(protocol)定义更改为:@objcprotocolHighlightable{varhighlighted:Bool{@objc(isHighlighted)getset}}所以UILabel和UIControl的协议(protocol)实现就这么简单:extensionUILabel:Highlightable{

ios - swift 4 错误 : '-[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] may only be called from the main thread

当互联网连接处于事件状态时,该应用程序运行良好。但是,我尝试关闭互联网连接并尝试使用端点。我遇到了这个错误:***Terminatingappduetouncaughtexception'NSInternalInconsistencyException',reason:'-[UIKeyboardTaskQueuewaitUntilAllTasksAreFinished]mayonlybecalledfromthemainthread.'几点:a)首先,我不清楚我应该在哪个地方使用async-我在switch语句中针对两种不同的情况将它放在了两个地方。b)其次,我是否使用error.lo

objective-c - 在 Swift 中命名 Obj-C 属性 getter 和 setter

我正在寻找访问的通用解决方案:Obj-C来自Swift的命名属性getter和命名属性setter符合具有readonly属性的Objective-C@protocol类似于CreatinganObjective-CequivalentGetterandSetterinSwift,已关闭,但未提供令人满意的答案。Objective-C到Swift属性示例:我有一个Objective-C协议(protocol),它定义了两个有问题的属性,一个带有自定义getterisEnabled,另一个带有私有(private)setterexists。@protocolSomeProtocol@pr

ios - Swift - 带有 Objective-C 选择器 '*()' 的方法 '*' 与具有相同 Objective-C 选择器的父类(super class) '*' 的 'NSObject' 的 getter 冲突

自从将我的xcode更新到6.3.1后,我收到了这条错误消息。/Users/MNurdin/Documents/iOS/xxxxx/Models/Message.swift:46:10:Method'hash()'withObjective-Cselector'hash'conflictswithgetterfor'hash'fromsuperclass'NSObject'withthesameObjective-Cselector我的代码varhash_:UIntfunchash()->UInt{returnUInt(hash_);} 最佳答案

macos - swift 错误 "Immutable value only has mutating members"

编译以下Swift代码时(在Sample.swift中):importCocoaclassSample{funcdoSomething(){varstringArray=Array()stringArray.append("AAA")addToString(stringArray)stringArray.append("CCC")}funcaddToString(myArray:Array){myArray.append("BBB")}}我在“myArray.append("BBB")”行收到以下错误:Immutablevalueoftype'Array'onlyhasmutating

Swift - 在 getter 上返回自身属性并在 setter 上设置自身

无论如何要在getter中返回自身属性并在setter中设置自身?因为我只想在getter和setter中打印日志,仅此而已。例如我尝试做这样的事情:private(set)varinternetConnectionAvailable:Bool{get{logger.debug("verifyinginternetconnection")//herereturnitselfproperty}set{logger.debug("changinginternetconnection")//heresetitself}}如果我在getter上返回self.internetConnection

ios - 覆盖 UIImageView 的图像 getter/setter 方法

我将UIImageView子类化,以便每次设置图像属性时都会出现动画。以下是成功的:importUIKitclassAnimatedImageView:UIImageView{varimg:UIImage!{get{returnself.image}set{self.image=newValueUIView.animateWithDuration(0.5,delay:0.4,usingSpringWithDamping:0.2,initialSpringVelocity:5.0,options:.CurveEaseIn,animations:{_inself.transform=CGA

swift - 在 Swift 中,为什么分配给静态变量也会调用它的 getter

我知道在Swift中,静态变量是隐式惰性的:https://stackoverflow.com/a/34667272/1672161但我不清楚为什么会这样:protocolHatType{}classHat:HatType{init(){print("realhat")}}classMockHat:HatType{init(){print("mockhat")}}structHatInjector{staticvarhat:HatType=Hat()}HatInjector.hat=MockHat()//Output://realhat//mockhat我看到的是,对静态变量的赋值在某

ios - Swift 中的惰性属性等同于 Objective C 中的惰性 Init getter

Swift中的lazy属性是否等同于在ObjectiveC中使用延迟加载模式覆盖getter? 最佳答案 来自文档:Alazystoredpropertyisapropertywhoseinitialvalueisnotcalculateduntilthefirsttimeitisused.Youindicatealazystoredpropertybywritingthelazyattributebeforeitsdeclaration.所以,大多数情况下,是的。Youmustalwaysdeclarealazypropertya

android - 插页式 Admob 广告 : "IllegalStateException: Only fullscreen activities can request orientation"

背景我有一个使用AdmobSDK的应用,用于显示插页式广告(全屏广告)。最近,Google更新了SDK以及许多其他内容(构建工具、gradle插件、IDE等...),包括admob(firebase广告)。compile'com.google.firebase:firebase-ads:11.4.2'问题更新后,我注意到每当应用尝试展示插页式广告时,它都会崩溃。崩溃日志是这样的:10-2814:01:01.3944523-4523/...I/Ads:Adopening.10-2814:01:01.4001606-2154/?E/ActivityManager:ActivityManag