Короткий ответ - то, что Вы не делаете. Причина состоит в том, что свойства являются действительно просто методами, и при попытке изменить тип возврата, Вы получаете это:
Objective C делает не , позволяют ковариантность типа возврата.
то, Что можно сделать, добавляет новое свойство "myView" и заставляет его просто преобразовать тип свойства "представления". Это облегчит преобразования типа всюду по Вашему коду. Просто присвойте свой подкласс представления свойству представления, и все должно хорошо работать.
Метод open
:
open("http://image.com/img.jpg")
возвращает объект Tempfile, а encode64
ожидает String.
Вызов read
во временном файле должно помочь:
ActiveSupport::Base64.encode64(open("http://image.com/img.jpg") { |io| io.read })
Закодировать файл в кодировке base64:
File.open("output_file","w"){|file| file.write [open("link_to_file").string].pack("m")}
Декодировать файл в кодировке base64:
File.open('original', 'wb') {|file| file << (IO.readlines('output_file').to_s.unpack('m')).first }