objective-c-blocks相关内容
我有一个公开imageBlock属性的第三方API.我是Blocks的新手-我应该如何在课堂上设置此Block? @property (copy) NSString *(^imageBlock)(NSString *key, NSString *value, BOOL *send); 解决方案 您的语法是正确的,但是,出于理智和可读性考虑,我建议使用typedef为此Block签名创建
..
如何在UIViewController取消分配时在目标C中触发阻止事件. 例如: [PGMemberObj requestWithUserName:@"ab" andPassword:@"cc" andCallback:^(BOOL isSuc){ if (isSuc) { NSLog("Login Suc."); }els
..
我正在为我的项目开发networkUtil,我需要一个方法,该方法获取URL并使用NSURLSessionDataTask返回从该URL接收的JSON,以从服务器获取JSON.方法如下: + (NSDictionary*) getJsonDataFromURL:(NSString *)urlString{ __block NSDictionary* jsonResponse;
..
我们有一个iOS 9.2应用程序,当通过Xcode和本地Mac安装时,可以在测试中正常运行.当我们通过MDM服务器安装此应用程序时,它在首次访问数据时崩溃.正在退出,并显示错误"10.00秒后无法更新场景". 我从检查控制台输出来看,它似乎在requireLogin方法中的成功过程之后挂起(在[self checkIntSession:self.sessionDetail]之后. 我们
..
示例: typedef void(^responseBlock)(NSDictionary*, NSError *); @interface MyClass : NSObject { [??] responseBlock responseHandler; } 我应该在[??]括号中放置什么限定词? 我已经读过,应该使用复制限定符设置作为属性的块...但是在这种情况下,我不需
..
我正在使用ARC编写应用程序,并且想知道以下内容是否会引起问题.具体来说,我正在创建一个对象"A",然后使用GCD将代码块添加到主线程的队列中,并在该代码块中对对象的弱引用执行一些操作.但是,在执行代码块时,我的对象已经为空.由于代码块仅对对象具有弱引用,这会引起问题吗?还是编译器以某种方式知道保留对该对象的引用,因为我的代码块在运行时需要它? Foo *A = [[Foo allo
..
Objective-C的新手,很费时间弄清楚如何完成以下工作.我来自javascript背景,因此我可能无法以正确的方式进行处理. 在我的视图控制器中,我正在调用类方法getLuminosity.我想在7秒钟内从相机中收集一些float,对其求平均值,然后返回该平均值,但不知道如何进行.这是我的getLuminosity代码: - (CGFloat) getLuminosity {
..
我正在使用AFNetworking 2从服务器获取数据,我需要取回responseObject,但是无论我做什么我仍然会得到. 这是向服务器发送GET请求的方法,作为响应,它获取了NSDictionary我想在另一种方法中使用的方法... - (void)getCurrentVersionsForTimetableWithID:(NSString *)timetableID
..
我终于发现我的内存错误是由在一个块中强烈引用self引起的.但是我不知道为什么在类似情况下不需要弱点: 我有一个CameraCaptureManager类来执行图像捕获任务,而CameraViewController具有此管理器的强大属性.管理器的弱委托属性指向控制器. 这是我必须在管理器中使用weakSelf的地方,否则-(void)dealloc将不会被调用: //
..
所以我有 @interface testAppControl : NSObject { NSString *s; } 然后在我要阻止的地方 [SendAPI setGroupWithName:groupName completionHandler:^(NSArray *errors) { s = @"something"; }]; NSLog(@"%@", s);
..
我有一个使用UITabBar的应用程序,它必须从Internet下载内容,因此我决定使用Reachability类.当我启动它时,该方法非常有效,但是如果我不等所有工作都完成而又转到另一个tabBar索引,那么我回到第一个索引,该应用程序将继续运行并且不会移动.这是一些代码: - (void)viewWillAppear:(BOOL)animated { [[self.navigationC
..
我正在IOS中进行一些数据库操作.基本上,我想在后台线程中执行此操作.我尝试使用 GCD .但是对我来说,问题是我希望在此过程完成后从中获取一些价值.说在将一个项目插入数据库之前,我检查该项目是否已经存在.请参见下面的代码 __block Boolean isExisting = false; dispatch_async(dispatch_get_global_queue(DISP
..
我敢肯定有一种使用块的方法,但是我无法弄清楚.我想将NSDictionary转换为url样式的参数字符串. 如果我的NSDictionary看起来像这样: dict = [NSDictionary dictionaryWithObjectsAndKeys:@"blue", @"color", @"large", @"size", nil]]; 然后我如何将其转换为如下所示的字符串:
..
我最近一直在尝试理解块在编程中的重要性(尤其是Objective-C).显然,它们在iOS/Cocoa API中使用了很多,所以我试图理解它们. 大多数情况下,我仍然不明白为什么要使用块而不是仅仅创建一个单独的辅助函数.例如,如果我创建一个实现某种排序功能的块,那么将其创建为帮助程序类的方法难道不是很容易,这样代码中的所有对象都可以更轻松地使用它吗? 解决方案 如果要通过将业务逻辑保
..
我有一个与此处概述的问题类似的问题: xcode 4.5是否更改了sortedArrayUsingComparator +块? int index = [AAjouter indexOfObject:match inSortedRange:NSMakeRange(0, [AAjouter count]) options:NSBinarySearchingInsertionIndex usin
..
我有一些图像处理需要很多时间和资源,因此我使用 NSOperatioQueue +回调的委托.和所有的工作. 现在我要使用块,因为例如在tableView中使用它非常优雅和简单. 我需要做的就像 AFJSONRequestOperation 一样: NSURL *url = [NSURL URLWithString:@"url"]; NSURLRequest *request =
..
下面的两个代码段有什么区别? 1. __block __weak NSMutableArray *arrBlock = self.arr ; [[AsyncRequest initRequest:url onCompletedBlock:^(NSMutableArray *arr) { arrBlock = arr; }]ExecuteRequest];
..
我喜欢的东西:等待数据下载完成,然后打开TableView并显示data. 我所拥有的:尽管我有一个completionBlock,但调用prepareForSegue时,TableView立即打开,而无需等待data下载(我猜这可能无法正确实现) ). 注意:当我返回并再次打开TableView时,会看到data. - (void)fetchEntries { void
..
我正在尝试使用Obj-C块,并尝试在其中包含两个块的结构中,一个块将更改另一个块的功能. 这是做一些简单事情的一种真正的回旋方式……可能会有更好的方法来做,但是练习的目的是让我理解障碍.这是代码,它不起作用,那么我缺少/不了解和/或做错了什么? //enumerate my math operation options so i can have something more unde
..
我似乎无法弄清楚如何测试此方法: - (void)writer:(id)writer didFailWithError:(NSError *)error; { [self.alertView dismissWithClickedButtonIndex:0 animated:YES]; void (^alertViewBlock)(int) = ^(int buttonInde
..