我有类别类有编码网址的方法。那么如何在另一个类中使用此方法。提前谢谢
的NSString + EncodeURL.h
#import <Foundation/Foundation.h>
@interface NSString (EncodeURL)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding;
@end
的NSString + EncodeURL.m
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding {
return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)self,
NULL,
(CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ", CFStringConvertNSStringEncodingToEncoding(encoding)));
}
在另一个班级。如何使用Category类
中的urlEncodeUsingEncoding将urlString转换为字符串#import "WatchVideosViewController.h"
#import "CustomCell.h"
#import "ImageRequest.h"
#import "Constant.h"
#import "ImageCache.h"
#import "NSString+EncodeURL.h"
@interface WatchVideosViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageBackground;
@end
@implementation WatchVideosViewController
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
static NSString * CellIndentifier = kCellName;
CustomCell *cell = (CustomCell*)[collectionView dequeueReusableCellWithReuseIdentifier:CellIndentifier forIndexPath:indexPath];
NSDictionary *dictVideo = [self.videoList objectAtIndex:indexPath.row];
//start indicator
[cell.indicator startAnimating];
//set title
NSString *titleVideo = [dictVideo objectForKey:kTitleKey];
[cell.myLabel setText:titleVideo];
// set image url
NSString *urlVideo = [dictVideo objectForKey:kUrlKey];
NSURL *url = [NSURL URLWithString:urlVideo];
NSString *urlString = [url absoluteString];
NSString *encodeURL=[urlString ]
//encode url
答案 0 :(得分:3)
在您要使用-urlEncodeUsingEncoding:
的文件中,只需添加:
#import "NSString+EncodeURL.h"
该文件中的所有NSString
个实例都将回复-urlEncodeUsingEncoding:
。
答案 1 :(得分:1)
在类中你想运行NSString + EncodeURL.h - 这个类的方法
现在你必须选择在哪个地方运行(NSString + EncodeURL.h)这个类的方法。
假设您希望它在viewDidLoad中运行,那么 在方法中创建类的实例。
NSString + EncodeURL * myInstance; [myInstance methodname];
答案 2 :(得分:1)
在要使用类别方法的类中,只需导入类别标题,如下所示。
#import "NSString+EncodeURL.h"
然后,使用下面的类别方法
NSString *encodeURL = [urlString urlEncodeUsingEncoding:urlString];
多数民众赞成,简单,宾果!
答案 3 :(得分:0)
如同您的代码中所示,如果您想对网址进行编码,只需编写
即可NSString *encodeURL=[urlString urlEncodeUsingEncoding:NSUTF8StringEncoding]; //whataver encoding you want just pass
如果没有显示代码完成,那么索引可能会出现问题,只需终端xcode重新打开clean和build.It应该可以工作。
答案 4 :(得分:0)
NSStringEncoding
的示例是NSUTF8StringEncoding
。您可以通过调用将urlString转换为encodeURL:
NSString *encodeURL=[urlString urlEncodeUsingEncoding:NSUTF8StringEncoding];
函数CFStringConvertNSStringEncodingToEncoding()
会将NSUTF8StringEncoding
转换为kCFStringEncodingUTF8