2015-09-21 51 views
0

由於UICollectionViewLayoutAttributes不匹配,我很少在自定義collectionViewLayout上發生'NSInternalInconsistencyException'錯誤,但據我所知,這些屬性應該是相等的。蘋果是否希望我們緩存所有這些屬性並返回相同的EXACT?UICollectionViewLayout看起來相同的屬性上的屬性不一致性錯誤

這裏是所討論的兩個layoutAttributes。正如你所看到的,他們對於他們實際的內存地址是相同的。

<UICollectionViewLayoutAttributes: 0x1703e1f00> index path: (<NSIndexPath: 0xc00000000000000e> {length = 1, path = 0}); element kind: (DRSupplementaryViewKind); frame = (22 0; 61 25); alpha = nan; zIndex = 402; 

<UICollectionViewLayoutAttributes: 0x1703e3600> index path: (<NSIndexPath: 0xc00000000000000e> {length = 1, path = 0}); element kind: (DRSupplementaryViewKind); frame = (22 0; 61 25); alpha = nan; zIndex = 402; 

回答

0

這是一個有趣的事實,「NaN == NaN」的結果是什麼?沒錯,這是錯誤的。所以即使isEquals在兩個layoutAttributes上被調用,並且即使它們看起來相同,isEquals也會返回false,因爲「沒有什麼與Nan相等 - 甚至不是NaN本身!!!」。

這意味着[myLayoutAttribute isEqual:方法[myLayoutAttribute複製]]是假,如果浮點屬性之一是NaN。是啊......

我希望這節省了別人的思想彎曲痛苦我一直面臨着。