草庐IT

swift-block

全部标签

ios - 请帮助我进行基于 block 的回调

我对基于block的回调理解不充分。似乎有两种我知道的方法,我不知道什么时候应该使用另一种方法,所以有人可以向我解释两者之间的区别,纠正我并在需要时给我一些提示任何。我从stackoverflow和其他地方的库中找到了一些代码,非常感谢编写这些代码的人。typedefvoid(^MyClickedIndexBlock)(NSIntegerindex);@interfaceYourInterface:YourSuperClass@property(nonatomic,strong)MyClickedIndexBlockclickedIndexBlock.m//whereyouhaveto

ios - Kiwi iOS 上下文 block 的奇怪排序

我有一个Kiwi规范文件,看起来像这样:#import"Kiwi.h"#import"MyCollection.h"SPEC_BEGIN(CollectionSpec)describe(@"Collectionstartingwithnoobjects",^{MyCollection*collection=[MyCollectionnew];context(@"thenadding1object",^{MyObject*object=[MyObjectnew];[collectionaddObject:object];it(@"has1object",^{[collectionshou

当不考虑VC时,如何阻止VCS功能操作?[Swift 3.0 Xcode]

我有一个包含功能的视图控制器,希望一旦离开视图控制器,我就需要禁用。该功能不会启动,直到我导航到VC,这是我想要的,但是当我离开并导航到其他视图控制器时,我也可以停止这些功能。有人知道这个技巧吗?看答案您可以通过多种方式做到这一点。像其他人所评论的那样,这两种方法中的任何一种都使计时器或位置内容无效。letsomeTimer=Timer()overridefuncviewWillDisappear(_animated:Bool){super.viewWillDisappear(animated)someTimer.invalidate()}overridefuncviewDidDisappea

objective-c - 引用自身和实例变量的 block

在block中引用“self”(和ivars)而不创建强引用(从而增加引用计数)的正确方法是什么?例如,我发现以下增加了“self”的引用计数:^(idsender){[self.navigationControllerpopViewControllerAnimated:YES];}为了规避上述情况,我一直在做以下事情:__weakWhateverController*weakSelf=self;^(idsender){[weakSelf.navigationControllerpopViewControllerAnimated:YES];};是的,我知道这是伪代码。

ios - 在完成 block 中调用时,UIAlertView 需要很长时间才能出现

我的应用程序的一部分需要日历访问,这需要调用EKEventStore方法-(void)requestAccessToEntityType:(EKEntityType)entityTypecompletion:(EKEventStoreRequestAccessCompletionHandler)completion作为iOS7。我添加了请求,如果用户选择允许访问,一切都会顺利进行,但如果用户拒绝或之前拒绝访问,就会出现问题。我添加了一个UIAlertView以在访问被拒绝时通知用户,但是UIAlertView始终需要20-30秒才能出现,并在此期间完全禁用UI。调试显示[alertVi

ios - 在 Swift 3 中没有更多上下文的表达式类型不明确

我正在尝试学习Swift并正在阅读有关推送通知的教程。letsettings=UIUserNotificationSettings(forTypes:[.Alert,.Badge,.Sound],categories:nil)给我错误"Typeofexpressionisambiguouswithoutmorecontext".我直接从教程中复制/粘贴了这一行,并在StackOverFlow上找到了这一行。我做错了什么?我使用的是Xcode8。 最佳答案 查看UIUserNotificationSettings的文档。它的签名在Sw

objective-c - __block 实例变量问题上的属性。

我在编译Objective-C类时遇到了以下错误:VideoView.h:7:error:__blockattributecanbespecifiedonvariablesonly这里还有头文件的重要部分:#import#import@interfaceVideoView:UIView{@private__blockAVPlayer*player;}...是否有任何解释为什么g++认为我在非变量对象上应用__block属性? 最佳答案 您不能在实例变量上使用__block,因为它完全没有必要。即,当您这样做时:^{someIvar=

swift iOS内购

一.使用轮子SwiftyStoreKit SwiftStoreKit二.方法在程序入口didFinishLaunchingWithOptions //程序启动时在AppDelegate添加观察者,监测购买结果状态,并根据需求作出相应处理。1.监听自动续费订单因为自动订阅类型,除了第一次购买行为是用户主动触发的。后续续费都是Apple自动完成的,一般在要过期的前24小时开始,苹果会尝试扣费,扣费成功的话会在APP下次启动的时候主动推送给APP。所以,APP启动的时候一定要添加上面的那句话。用到SwiftyStoreKit.completeTransactions这里的监听只是在重新进入app调用

ios - 使用 Swift 3 获取 iPhone 或 iPad 设备的 IP 地址

这个问题在这里已经有了答案:Swift-Getdevice'sWIFIIPAddress(17个答案)关闭5年前。如何使用Swift3编程语言在不使用任何第三方库的情况下检索设备的IP地址?我使用了以下代码来获取IP地址:funcgetIPAddress()->String?{varaddress:String?varifaddr:UnsafeMutablePointer=nilifgetifaddrs(&ifaddr)==0{varptr=ifaddrwhileptr!=nil{defer{ptr=ptr.memory.ifa_next}letinterface=ptr.memory

ios - Swift 4 - iOS 11 搜索栏范围不会出现,因为它应该

我有一个应用程序在iOS10上运行良好且没有任何问题,但在iOS11和XcodeBeta5上,我遇到了搜索栏范围的奇怪问题,范围栏似乎是从底部切下来的。(所有版本的Xcodebeta和iOS11都一样)如果有人能把我引向正确的方向,我真的很高兴。谢谢在上面你可以看到当我按下汉堡包菜单按钮时我看到的。这里没问题..searchbar也有一个范围栏,它在单击时显示。我没有将它设置为以编程方式显示。但我想这是设置范围按钮标题时的默认行为。问题:当我点击搜索栏输入信息时,我看到了上面的屏幕。在iOS10上我没有遇到任何问题。但是现在,对于iOS11,无论我做什么,我都无法让它像在iOS10上那