Swift 1,2Swift 2 base64 кодирование дают различные результаты
let apiLoginString = NSString(format: "%@:%@", API_USERNAME, API_PASSWORD);
let apiLoginData: NSData = apiLoginString.dataUsingEncoding(NSUTF8StringEncoding)!;
var base64ApiLoginString = apiLoginData.base64EncodedStringWithOptions(nil);
Свифта 2
let apiLoginString = NSString(format: "%@:%@", API_USERNAME, API_PASSWORD);
let apiLoginData: NSData = apiLoginString.dataUsingEncoding(NSUTF8StringEncoding)!;
var base64ApiLoginString = apiLoginData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions());
Эти 2 дают разные результаты подход. В Swift 2 мы не можем перейти в nil
;
apiLoginData.base64EncodedStringWithOptions(nil);
Я также попытался прошел в NSDataBase64EncodingOptions.Encoding64CharacterLineLength
в Swift 2. Но результаты все еще differemt
Любые мысли?
ОБНОВЛЕНИЕ 2: Это не проблема с Swift 1.2 или Swift 2. Как ни странно, эти 2 печатают разные результаты .. Что такое F !!
UPDATE 3: Оказывается, что, как Мартин отметил, у меня есть какой-то невидимый персонаж в моем API_USERNAME переменного
class RequestHelper: NSObject {
static var API_USERNAME: NSString = "abc";
static var API_PASSWORD: NSString = "123";
static var USERNAME: NSString = "abc"
static var PASSWORD: NSString = "123"
class func signUpUser() {
//Base64
var loginString = NSString(format: "%@:%@", USERNAME, PASSWORD);
var loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)!;
var base64LoginString = loginData.base64EncodedStringWithOptions([]);
print("BASE 64 \(base64LoginString)");//RESULT YWJjOjEyMw==
let apiLoginString = NSString(format: "%@:%@", API_USERNAME, API_PASSWORD);
let apiLoginData: NSData = apiLoginString.dataUsingEncoding(NSUTF8StringEncoding)!;
var base64ApiLoginString = apiLoginData.base64EncodedStringWithOptions([]);
print("BASE 64 \(base64ApiLoginString)");// RESULT IS 4oGg4oGg4oGgYWJjOjEyMw==
}
дополнительную часть во второй кодированной строки (4oGg4oGg4oGg) буквально NIL при декодировании. не знаю, почему Foundation добавляет такую бесполезную голову. – Mousavian
Я рекомендую использовать собственный тип String и строчную интерполяцию вместо форматирования NSString. – Mousavian