2016-10-26 4 views
0

Я новичок в ИОС и возражали С.Нет видимых @interface для «NSString» заявляет селектор URLEncodeUsingEncoding

Я пытаюсь кодировать URL, немного я получаю ошибку

/Пользователи /zupportdesk/Desktop/MyIOSApps/ZDticketSystem/ZDticketSystem/ViewController.m:313:52: нет видимых @interface для 'NSString' заявляет о 'URLEncodeUsingEncoding:' селектор

#import "ViewController.h" 
#import "AppDelegate.h" 
#import "ApplicationEnvironmentURL.h" 
#import "AFNetworking/AFNetworking.h" 
#import "HHAlertView/HHAlertView.h" 
#import "MBProgressHUD/MBProgressHUD.h" 
#import "AppDelegate.h" 


@interface ViewController()<UITextFieldDelegate, UIActionSheetDelegate> { 
    ApplicationEnvironmentURL *applicationEnvironment; 
    NSString *BASEURL; 
    NSString *global_profileId; 
    AppDelegate *delegate; 
} 

@property (nonatomic, strong) NSString *username; 
@property (nonatomic, strong) NSString *password; 
@end 

@implementation ViewController 
--- defaults methods here 

- (void)setupProfileidURL:(NSString *)profileToken { 
    NSString *encoded_profileToken = [profileToken URLEncodeUsingEncoding:NSUTF8StringEncoding]; 
    NSString *user_login_url = [applicationEnvironment get_user_api_url]; 
    BASEURL = [[user_login_url stringByAppendingString:@"Account/GetProfileDetails?profileToken="] stringByAppendingString:encoded_profileToken]; 
    NSLog(@"Base URL: %@", BASEURL); 
} 

Я звоню метод как этот [self setupProfileidURL:profileToken];

Просмотр Holder заголовка файла

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController 

@property (weak, nonatomic) IBOutlet UITextField *tv_username; 
@property (weak, nonatomic) IBOutlet UITextField *tv_password; 

@end 

Я хочу осуществить эту https://madebymany.com/blog/url-encoding-an-nsstring-on-ios. может ли кто-нибудь помочь мне с этим кодированием url.

+2

Вам необходимо создать категорию для 'NSString', которая реализует' -URLEncodeUsingEncoding: 'и импортирует эту категорию, где она вам нужна. См. Там, как создать категорию: http://stackoverflow.com/questions/24324021/how-do-i-create-a-category-in-xcode-6-and-7 – Larme

ответ

1

Вы получаете это сообщение

Нет видимых @interface для «NSString» не декларирует «URLEncodeUsingEncoding:» селектор

потому URLEncodeUsingEncoding это метод, который определен в категории и вы не используют эту категорию в своем классе, поэтому вы получаете это сообщение.

Также CFURLCreateStringByAddingPercentEscapes осуждается с прошивкой так вместо него вы можете использовать stringByAddingPercentEncodingWithAllowedCharacters

Ниже приведен пример вашей функции

- (void)setupProfileidURL:(NSString *)profileToken { 
    NSString *encoded_profileToken = [profileToken stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; 
    NSString *user_login_url = [applicationEnvironment get_user_api_url]; 
    BASEURL = [[user_login_url stringByAppendingString:@"Account/GetProfileDetails?profileToken="] stringByAppendingString:encoded_profileToken]; 
    NSLog(@"Base URL: %@", BASEURL); 
} 

Также согласно @Larme комментарии вы можете создать категорию и использовать его в своем приложении, импортировав его.

Смежные вопросы