我在整个 iOS 应用程序中使用以下类型的对象引用复制功能。
例如objectA = objectB;
当您对 objectA 执行操作/更改时,它会自动反映在 objectB 中。您无需再次将 objectA 复制到 objectB 以反映 objectB 中的更改,因为它们指向/引用相同的位置(地址)。
问题是它在 iOS 8.2 之前运行良好,但它似乎在 iOS 8.3 中根本不起作用。
以下是无法正常工作的代码片段之一。
NSMutableDictionary *fieldObj = self.theData[indexPath.section ][indexPath.row];
// Adding text to data array
[fieldObj setObject:textField.text.stringByStrippingHTML forKey:@"value"];
NSLog(@"Line 1 \n%@",fieldObj);
NSLog(@"Line 2 \n%@",self.theData[indexPath.section][indexPath.row]);
从上面的代码第 1 行和第 2 行给出相同的输出到 iOS 8.2。
Line 1
{
name = Name;
required = NO;
type = 4;
value = asdfasdfasdfasdfsad;
}
Line 2
{
name = Name;
required = NO;
type = 4;
value = asdfasdfasdfasdfsad;
}
但是在 iOS 8.3 中,它们给出了不同的输出。
Line 1
{
name = Name;
required = NO;
type = 4;
value = asdfasdfasdfasdfsad;
}
Line 2
{
name = Name;
required = NO;
type = 4;
value = "";
}
我在这里做错什么了吗?
如果没有,有人知道这个问题以及如何解决它吗?
编辑: 抱歉上述误导性问题,我发现上述问题背后的原因是 indexPathForItemAtPoint:(CGPoint) 仅在 iOS 8.3 中返回错误的 indexPath。
The code I have used is as follow:
// retrieve indexpath from uitextfield
CGPoint pos = [textField convertPoint:CGPointZero toView:self.collectionView];
NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:pos];
上面的代码在 iOS 8.2 版本之前都可以正常工作。