草庐IT

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

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

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

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

ios - 如何连续改变每个节拍音乐的单个方 block 颜色以在 iPhone 中制作可视化工具?

我想为我的音乐播放器做一个可视化。所以我画了一个GridView,我想随机或连续地改变每个方block的颜色。我的绘制网格代码-(void)drawRect:(CGRect)rectfor(inti=0;i它看起来像 最佳答案 在我看来,您过于复杂化了自己,限制了future的可能性。如果我是你,我会将UIView或UIImageView的网格放置在一个数组中。(您可以通过编程方式或通过IB来完成)。(可以通过修改View层的border属性来添加边线)然后您可以通过独立设置它们的背景颜色、颜色均匀度、颜色几率、随机所有您想要的任何

iOS facebook 图形请求完成处理程序 block 未调用

我正在使用FacebookiOSSDK和Parse在我的一个应用程序上通过Facebook处理用户登录。然而,在使用iOS9SDK构建应用程序后,该应用程序似乎无法从Facebook的图形API获取信息。这是我用来从Facebook提取信息的代码片段FBSDKGraphRequest*request=[[FBSDKGraphRequestalloc]initWithGraphPath:@"me"parameters:@{@"fields":@"name,email,id,gender"}HTTPMethod:@"GET"];[requeststartWithCompletionHand

ios - 如何实现通用的 do-try-catch block 以捕获操作中抛出的所有错误

在Swift3.0中,如何实现通用的do-try-catchblock来捕获操作引发的所有错误。Apple文档说要实现类型为ErrorType的枚举器,它列出了抛出的错误。假设如果我们不知道操作会抛出什么样的错误,那么如何实现它。以下代码仅用于说明目的。在这里我可以捕捉到错误,但我不知道是什么导致了这个错误。在objective-c中,我们可以得到错误发生的确切原因,但在这里我们只得到我们分配给它的信息。enumAwfulError:ErrorType{caseCannotConvertStringToIntegertypecasegeneral(String)}funcConvert

ios - 如何获取 block 内变量的值

有没有办法用completionHandler检查“type”变量的值。-(void)sendApiMethod:(NSString*)apiNameApiType:(NSString*)type{[SendAPIsetAPIWithName:@"APIName"completionHandler:^(NSArray*errors){if([typeisEqualToString:@"Login"]){///CallSomeOtherfunction}}];} 最佳答案 我写了一小段代码来验证是否有效(只读你的问题我会说是作为Dro

objective-c - 在 block 保留周期中调用函数

如果我从block内部调用的函数引用“self”,是否会创建一个保留循环?__weakidweakSelf=self;-(void)firstFunction{idstrongSelf=weakSelf;if(!strongSelf)return;[anObjectperformBlock:^{[strongSelfsecondFunction];}];}-(void)secondFunction{[selfdoSomeCrazyStuff];self.counter++;//etc.}我在“secondFunction”中调用“self”,是否需要将我的弱指针传递给此函数并改为使用它

ios - 在同一线程上运行 block

我遇到了一些我无法弄清楚的问题。如果我有一个带有Block参数的方法签名,其中有一个回调,并且在我的方法中我使用了一个有另一个Block的API,API执行async并且我的代码继续并调用我的回调方法.这让我的ViewController知道一切都已完成,而实际上通常不是因为APIblock。由于我的方法总是调用回调方法(并且异步运行),我可以强制使用block的API调用同步运行吗?ViewController[self.tagReposync:^(BOOLfinished){if(finished){NSLog(@"Synccompleted.");if(self.tagRepo.