小编Jus*_*son的帖子

UIDocument openWithCompletionHandler未在iOS设备上完成

我正在尝试使用打开托管文档 openWithCompletionHandler:

我遇到的问题是它在模拟器上工作正常,但是当我在iPhone 4上测试它时,完成处理程序永远不会完成.代码如下所示:

[theManagedDocument openWithCompletionHandler:^(BOOL success){
    if(success) [self documentIsReady];
    if(!success) NSLog(@"Couldn't Open Document");
}];
Run Code Online (Sandbox Code Playgroud)

这在模拟器上工作正常,我接到documentIsReady电话(如果错误,则"无法打开文档").但是在iPhone 4上它永远不会运行CompletionHandler块.我已经在整个块中放置了断点(在两个if语句之前和之后)并且没有任何东西被调用.控制台上没有"无法打开文档",没有调用documentIsReady.

我还必须提一下,这似乎是我第一次在iPhone上运行应用程序,它将正常工作.我也将它封装在带有fileExistsAtPath:调用的if语句中.它正在进入if语句并且调用了openWithCompletionHandler:,但是完成块永远不会被触发.

我使用的是iOS 5.1和Xcode 4.3.2.

iphone cocoa-touch ios objective-c-blocks uimanageddocument

10
推荐指数
2
解决办法
3121
查看次数

负整数比较

我想比较两个整数.一个是rowa NSIndexPath,另一个是counta NSArray.该row等于0,count等于2.我让他们在if声明如下:

if([self.selectedSetpoint row] < ([self.theCategories count]-3))
{
    //Do true stuff
}
Run Code Online (Sandbox Code Playgroud)

所以根据我的数学,这个if陈述应该是假的,因为我在比较0 < -1.但是,我一直认为这句话是正确的,并且if正在运行中的块.我试过NSLog这些值,以确保我不只是得到错误的值.我在if声明之前把它放在了正确的位置:

NSLog(@"%d",[self.selectedSetpoint row]);
NSLog(@"%d",[self.theCategories count]-3);
NSLog(@"%@",[self.selectedSetpoint row] < ([self.theCategories count]-3)?@"Yes":@"No");
Run Code Online (Sandbox Code Playgroud)

并在控制台上得到这个:

2012-07-17 08:58:46.061 App[61345:11603] 0
2012-07-17 08:58:46.061 App[61345:11603] -1
2012-07-17 08:58:46.062 App[61345:11603] Yes
Run Code Online (Sandbox Code Playgroud)

有什么想法为什么这个比较是真的?我是否误解了比较整数的问题?

我在这个比较上面的另一个if语句

[self.selectedSetpoint row]<([self.theCategories count]-2)
Run Code Online (Sandbox Code Playgroud)

哪个是0 < 0,它工作正常(返回NO).所以我觉得使用负整数存在一些问题,我没有得到.

先感谢您.

iphone objective-c ios

3
推荐指数
1
解决办法
1976
查看次数