草庐IT

BLOCK_NUM

全部标签

iphone - 我如何从等于类数据成员的 block 中获取 NSArray?

-(void)viewDidLoad{[superviewDidLoad];[VenueManagersearchNear:@"Orlando"onLoad:^(NSArray*objects){self.locationObjects=objects;[self.tableViewreloadData];}onError:^(NSError*error){NSLog(@"%@",error);}];这段代码在我的UITableViewController类的viewDidLoad方法中。它是使用RestKit解析来自FourSquare的JSON文件的起点。我正在拔头发,因为在我放置

iphone - 在类内部将 block 作为类中的属性转发

我有3个viewController类:vA、vB和vC。我有一个关于vA的方法:-(void)showMessage:(NSString*)messagewithTitle:(NSString*)title{...blabla}我正在使用self.navigationController推送vB。我希望vB从vA运行此方法,所以我所做的是在vB中创建一个属性,如下所示:@property(nonatomic,strong)void(^showMessage)(NSString*message,NSString*title);当我在vA中创建vB并在推送它之前,我这样做:vB.show

iOS:为什么我不能从全局 block (方法之外)访问@property

我正在尝试创建一个可以从任何方法使用的全局block。我希望这个block访问类的@properties。但是当我尝试这样做时,我得到“使用未声明的标识符自身”访问支持变量_myVar也不起作用。为什么这行不通?什么变通方法会给我一个可以从任何方法访问的block?谢谢。一个例子:@interfacemyClass()@property(nonatomic,assign)BOOLsubjectSex;@end@implementation//thesereturnswillget:useofundeclaredidentifierint(^myBlock)=^{if(self.subj

ios - Objective-C NSArray、 block 、STAsertEquals

我正在开发一个应用程序,列出一项运动的当前现场比赛。有关实时游戏的信息是使用REST从远程源获取的。第一个请求给出了一个实时游戏列表及其ID和相应的竞技场ID。然后我必须从他们的ID中获取竞技场名称。当一切都完成后,我发回一个包含实时游戏列表的NSArray。在测试通过block传递NSArray的解析方法时,我在SenTestCase中发现了一个奇怪的行为。在我的测试中,我能够执行[myArraycount]并将其结果显示在NSLog中,但是当我执行STAsertEquals([myArraycount],1,@"Errordescription")带有EXC_BAD_ACCESS的

iphone - 使用 block 排队动画

在我的didSelectRowAtIndexPath方法中,我调用[selfdismissView];当用户选择一个单元格以便关闭View(如果它已经显示)。这显然不是最优的,并且它在没有为dismissView设置动画的情况下覆盖了presentView方法。有一个更好的方法吗?或者至少让它等待View完成动画而不使用NSTimer。-(void)tableView:(UITableView*)tableViewdidSelectRowAtIndexPath:(NSIndexPath*)indexPath;{[selfdismissView];//Doxyz...[selfprese

iphone - 创建我的第一个 iPhone 应用程序.. 重定位 block

所以我有一个block在iPhone内置加速度计的帮助下移动,另一个block随机出现在屏幕上。我正在尝试使用if语句来确定移动block是否点击或触摸了固定目标block,如果它这样做,它将随机重新定位到屏幕上的另一个位置。除了确定两个坐标在任何给定点是否相等之外,一切正常。到目前为止..编辑:*所以我删除了xx和yy变量并将它们替换为self.xVar和self.yVar,这似乎工作了一点,但非常粗略并停止了edit2:**所以它删除xx和yy确实有帮助,但它只适用于2-3次点击,然后停止。edit3**意识到具有相同的x或y变量不是解决此问题的正确方法..-(void)accel

ios - block 如何处理 __weak 引用

从大量关于打破block内保留循环的问题中,我的问题如下:该block实际上如何处理其中的__weak引用?我知道这一点(摘自here):BlockswillretainanyNSObjectthattheyusefromtheirenclosingscopewhentheyarecopied.那么它是如何处理__weak资格所有权的呢?理论上,因为它是__weak,所以不会保留它?会只保留对它的引用吗? 最佳答案 正确,弱引用不会被保留。它完全按照您的预期工作。一旦对象被释放,它们将被设置为nil。虽然这通常是好的(您不希望它仅仅

ios - ARC block ,弱和保留计数

我以为我已经很了解弱引用和block,但是在尝试下面的代码片段时,有一些我不明白的地方。方法测试1:一切正常,对象不保留方法测试2:我不明白为什么对象似乎一直保留到方法结束测试3!甚至明确设置object=nil在方法结束时测试2不会改变任何东西。方法测试3:对象没有保留。为什么是方法测试2不是这样吗?作为一个附带问题,我实际上想知道弱变量是否是线程安全的?即,如果我在尝试从不同线程访问弱变量时永远不会得到任何BAD_ACCESS异常。@interfaceObject:NSObject@property(nonatomic)NSIntegerindex;@end@implementat

iphone - iOS不清理UIView动画的完成 block 吗?

我在使用UIView动画block时遇到了一些奇怪的事情。在我运行我的动画代码后,一个View从未被释放。在调用动画代码之前,我将view属性设置为nil。然后在完成block内,我将它从superview中删除,所以在淡出后它就消失了。但是那个淡出和移除View的-dealloc永远不会被调用。然后我想也许完成block保留了View并使用有效的__weak进行了弱引用。动画完成后突然正确释放View。但在动画block本身中,我只是简单地引用View并将其alpha设置为0。没有__weak引用,View仍会正确解除分配。结论:iOS在动画完成后清理动画block。但它不会清理完成

ios - 在类中定义 block 以在其他地方使用

我试图在一个类中定义一个block类型,以便我可以在其他类中使用它。我把它放在一个随处使用的类的.h中......typedefvoid(^ProgressBlock)(floatprogress);但我现在想在其他地方使用这个block。我有一个导入正确.h文件的类,但ProgressBlock不可用。有什么方法可以定义block以便我可以在多个类中使用它吗? 最佳答案 制作一个常量文件(C和C++头文件)定义您在其中的block。将该文件导入您想要使用该block的任何地方。 关于i