2014-10-16 2 views
-2

мне нужно использовать функцию из Objective C в Swift классаКак использовать NSData + Base64Additions.h Класс Objective C в Swift?

-(NSString *)encodeBase64ForData{} 

В Objective C Я называю эту форму:

#import "NSData+Base64Additions.h" 
[videoPath encodeWrappedBase64ForData] 

Но в Swift, я не могу импортировать этот класс. Как использовать этот кодировщик?

Спасибо!

ответ

0

Вам необходимо использовать заголовочный файл с объективом-c и добавить его в него. В первый раз, когда вы создаете объектный класс c в быстром проекте, он должен предложить вам создать, в противном случае вам нужно вручную создать и установить его в настройках сборки «Objective-C Bridging Header».

Более подробную информацию можно найти по адресу: https://developer.apple.com/library/ios/documentation/swift/conceptual/buildingcocoaapps/MixandMatch.html

+0

Этот класс не initializars, я не знаю, как implpement в стрижа, как вар MyClass = MyClass() https://github.com/kailoa/iphone-smtp/blob/master/Classes/ NSData% 2BBase64Additions.m – user3745888

+0

Вы используете класс, который просто добавляет метод к экземплярам NSData (и некоторым статическим методам класса для всего класса). В быстром это называется расширением. – shawnwall

+0

HOw, чтобы объявить об этом? Я не могу добавить этот код: расширение NSData + Base64Additions { } – user3745888

1

Первый удар по Google: http://ios-blog.co.uk/tutorials/quick-tips/base64-decoding-in-ios-7-objective-c-and-ios8-swift/

В принципе, вам не нужно импортировать категорию NSString. Вы можете использовать встроенную функциональность для строк base64.

let plainString = "my string to encode" 
let plainData = (plainString as NSString).dataUsingEncoding(NSUTF8StringEncoding) 
let base64String = plainData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.fromRaw(0)!) 
println(base64String) // Something like bXkgc3RyaW5nIHRvIGVuY29kZQ== 
+0

Но ... этот класс используется для кодирования NSdata, а не NSString – user3745888

+0

@ user3745888 Правда, однако в примере вы можете видеть, что мы начинаем с plainString, который является NSString. Я обновлю пример, чтобы он был более явным. – CodeReaper

+0

@ user3745888: «Base-64» предназначен для кодирования двоичных данных, что и является «NSData». 'NSString' представляет последовательность символов, а не двоичные данные. Вы можете преобразовать символьную строку в двоичные данные через * string encoding *, где вам нужно выбрать, какую схему кодирования вы хотите. – newacct

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