2016-10-13 66 views
0

我的項目有Objective-C文件和Swift文件(混合搭配,感謝https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html)。import swift class into Objective-C works,but some custom file not

現在,我在我的項目中添加一個名爲'Helper'的新文件夾,以包含我可以在任何類中使用的函數。

我的Controller文件夾中的任何快速類都包含在my-project.swift.h 中,我可以在任何Objective-C類中使用它,而不會有任何問題。但是,這裏是問題所在,我不能在我自己創建的Helper文件夾(它位於Controller文件夾之外)中使用swift類,所以我無法在我的Objective-C類中使用它。任何解決方案?這裏是我的幫手文件

import Foundation 
public class imageHelper{ 
    func ResizeImage(image: UIImage, targetSize: CGSize) -> UIImage { 
    let size = image.size 

    let widthRatio = targetSize.width/image.size.width 
    let heightRatio = targetSize.height/image.size.height 

    // Figure out what our orientation is, and use that to form the rectangle 
    var newSize: CGSize 
    if(widthRatio > heightRatio) { 
     newSize = CGSizeMake(size.width * heightRatio, size.height * heightRatio) 
    } else { 
     newSize = CGSizeMake(size.width * widthRatio, size.height * widthRatio) 
    } 

    // This is the rect that we've calculated out and this is what is actually used below 
    let rect = CGRectMake(0, 0, newSize.width, newSize.height) 

    // Actually do the resizing to the rect using the ImageContext stuff 
    UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0) 
    image.drawInRect(rect) 
    let newImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return newImage 
} 

func imageWithSize(image: UIImage,size: CGSize)->UIImage{ 
    if UIScreen.mainScreen().respondsToSelector("scale"){ 
     UIGraphicsBeginImageContextWithOptions(size,false,UIScreen.mainScreen().scale); 
    } 
    else 
    { 
     UIGraphicsBeginImageContext(size); 
    } 

    image.drawInRect(CGRectMake(0, 0, size.width, size.height)); 
    let newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return newImage; 
} 

//Summon this function VVV 
func resizeImageWithAspect(image: UIImage,scaledToMaxWidth width:CGFloat,maxHeight height :CGFloat)->UIImage 
{ 
    let oldWidth = image.size.width; 
    let oldHeight = image.size.height; 

    let scaleFactor = (oldWidth > oldHeight) ? width/oldWidth : height/oldHeight; 

    let newHeight = oldHeight * scaleFactor; 
    let newWidth = oldWidth * scaleFactor; 
    let newSize = CGSizeMake(newWidth, newHeight); 

    return imageWithSize(image, size: newSize); 
} 
} 
+0

檢查您的構建階段 - >編譯源代碼,並確保'包括imageHelper.swift'。 –

回答

0

我想通了! 只是更改此代碼

public class imageHelper{ 

這個

class imageHelper: NSObject{ 
相關問題