2013-12-08 70 views
2

我得到在Xcode警告:格式指定類型「詮釋」,但參數的類型是「UIViewContentMode」

格式指定類型「詮釋」,但參數的類型爲 「UIViewContentMode」

我有我使用的調整的UIImage如下的方法:

- (UIImage *)resizedImageWithContentMode:(UIViewContentMode)contentMode 
            bounds:(CGSize)bounds 
        interpolationQuality:(CGInterpolationQuality)quality { 
    CGFloat horizontalRatio = bounds.width/self.size.width; 
    CGFloat verticalRatio = bounds.height/self.size.height; 
    CGFloat ratio; 

    switch (contentMode) { 
     case UIViewContentModeScaleAspectFill: 
      ratio = MAX(horizontalRatio, verticalRatio); 
      break; 

     case UIViewContentModeScaleAspectFit: 
      ratio = MIN(horizontalRatio, verticalRatio); 
      break; 

     default: 
      [NSException raise:NSInvalidArgumentException format:@"Unsupported content mode: %d", contentMode]; 
    } 
... 

UIViewContentMode似乎參考整數,所以我不知道這個警告:

typedef NS_ENUM(NSInteger, UIViewContentMode) { 
    UIViewContentModeScaleToFill, 
    UIViewContentModeScaleAspectFit,  // contents scaled to fit with fixed aspect. remainder is transparent 
    UIViewContentModeScaleAspectFill, ... 

我該如何擺脫這種警告似乎是不正確的?異常中的NSLog是否正確?

回答

1

,就可以把NSIntegerUIViewContentModeint這樣的:

[NSException raise:NSInvalidArgumentException format:@"Unsupported content mode: %d", (int)contentMode]; 
+1

@ H2CO3哎呀 - 糾正。謝謝! – Pfitz

+0

謝謝兩位,我試着用(NSInteger)替代之前施放。 – StuartM

相關問題