iOS因除数为0导致的crash

前几天写的一段屏幕适配代码没有过滤除数为0的情况而导致的crash。
NSArray *array = movieAsset.tracks;
CGSize videoSize = CGSizeZero;
for (AVAssetTrack *track in array) {
    if ([track.mediaType isEqualToString:AVMediaTypeVideo]) {
        videoSize = track.naturalSize;
    }
}
// 视频适应屏幕大小,注意此处除数不能为0,这里没过滤0所以导致了crash
self.height = videoSize.height * self.width / videoSize.width;

报错如下:

0 Thread

CALayerInvalidGeometry
CALayer position contains NaN: [160 nan]
CoreFoundation ___exceptionPreprocess + 124
1 libobjc.A.dylib objc_exception_throw + 56
2 CoreFoundation -[NSException initWithCoder:]
3 QuartzCore 0x00000001881c0000 + 1102236
4 QuartzCore 0x00000001881c0000 + 1102608
5 QuartzCore 0x00000001881c0000 + 1104040
6 UIKit -[UIView(Geometry) setFrame:] + 784

你可能感兴趣的:(iOS因除数为0导致的crash)