2013-01-02 32 views
0

我在視圖控制器中有一系列方法,它用數據填充數組,並且還允許選擇各種項目 - 工作正常。代碼如下(爲了清楚起見,我在每種方法中都拿出了代碼)。從類中的方法創建類objective-c

我的問題是:我重複使用這個代碼很多,我總是複製並粘貼到新項目中。我認爲訪問一個完成下面所有操作的類(?)將會更容易,而不是將所有這些方法複製並粘貼到每個vc中。然後我可以引用類文件 - 清理我的代碼並減少vc中的行數。

如何將這些方法轉換爲我可以在視圖控制器中分配(?)或調用的東西?

- (NSArray *)imageData { 

     return __imageData; 
} 

     - (UIImage *)maskAtIndex:(NSUInteger)index maskType:(NSString*)maskName { 

      return [UIImage imageWithContentsOfFile:path];  
     } 

     - (UIImage *)imageAtIndex:(NSUInteger)index phaseType:(NSString*)phaseName { 

      return [UIImage imageWithContentsOfFile:path];  
     } 

     - (UIImage *)phaseaAtIndex:(NSUInteger)index { 

      return [UIImage imageWithContentsOfFile:path]; 
     } 

     - (NSString *)imageNameAtIndex:(NSUInteger)index phaseType:(NSString*)phaseName { 

      return name; 
     } 

     - (NSString *)maskNameAtIndex:(NSUInteger)index maskType:(NSString*)maskName{ 

      return mask; 
     } 

     - (NSString *)phaseaNameAtIndex:(NSUInteger)index { 

      return phasea; 
     } 

     - (CGSize)imageSizeAtIndex:(NSUInteger)index { 

      return size; 
     } 

     - (NSUInteger)imageCount { 

      return __count; 
     } 
+0

那麼我在如何使用這個新類別的損失。我已經建立了我的文件,但我不確定如何使用它們。 – malaki1974

回答

0

這種代碼應該可能在UIImage的一個類別。

請看這裏:http://macdevelopertips.com/objective-c/objective-c-categories.html

+0

啊!所以NSArray的一部分會留在它的位置,但UIImage方法會被添加到新的類別中?或者我也可以添加nsarray方法(加載plist來獲取圖像名稱)? – malaki1974

+0

UIImage類的方法當然可以返回一個NSArray,所以你也可以在UIImage類中實現它。但是,應該確保使用類方法而不是實例方法,因爲將它與UIImage的單個實例關聯並沒有意義。 –

+0

所以我創建了一個名爲UIImage + arrayindex的類別。將上述方法添加到兩者。我已經導入了新的類別。我該如何將現有的用於在同一個vc中引用方法的方法轉換爲現在看到的類別?鏈接中的示例字符串方法對我來說不夠清楚:numberOfFrames = [self imageCount] -1; \t imageView.image = [self imageAtIndex:currentFrame phaseType:@「phase_b_base」]; \t color.image = [self maskAtIndex:currentFrame maskType:@「phase_b_color」];此外,我感謝您迄今的迴應。 – malaki1974