2016-09-05 11 views
-2

CoreDataの保存画像をStringに変換して使用できます(イメージ/文字列を送信する必要があるため、画像に直接変換したくない次のページも)。ここでnsdataを素早く文字列に変換

は私がしようとしたが、それはnil値を見られるように、実行時にBAD_EXC_Resultを取得するが、私はifの文に渡して値をtableImageArray[indexPath.row]持っています私のコードです:

if tableImageArray[indexPath.row] != "" {     
    var _Image:String = String(data: tableImageArray[indexPath.row], encoding:NSUTF8StringEncoding)! 
    //(NSString(data:tableImageArray[indexPath.row], encoding:NSUTF8StringEncoding)) as String! 
    print(_Image) 
} 
+0

'tableImageArray'で' NSData'をどうやって取得しましたか? – Sweeper

+2

これはあまり意味がないようです。配列にNSDataオブジェクトがある場合、Stringとの比較は意味をなさない。画像データから文字列を作成しようとすると意味がありません。データにはUTF8エンコーディングがありますが、それはイメージデータではありません。 – Eiko

答えて

0

これは私の推測です。

配列の名前から判断すると、tableImageArrayは文字列ではなく画像の配列のように聞こえます。だから私はNSDataに画像を変換しようとしていると思うし、そのNSDataを文字列に変換します。

ただし、これは機能しません。 UIImageからStringに直接変換するのはうまくいきません。

私はあなたがこれらの意図のいずれかを持っていると思います:

1)あなたはbase64でしたい文字列に画像を符号化します。これを行うには、データにbase64EncodedStringWithOptions([])と電話するだけです。

2)UIImageに含まれている文字列を識別して印刷する必要があります。このためには、OCRライブラリを使用するべきでしょう。ちょうどそれらのGoogle!

0

試してみてください。

if let array = tableImageArray {     
    var _Image:String = String(data: array[indexPath.row], encoding:NSUTF8StringEncoding)! 
    //(NSString(data:array[indexPath.row], encoding:NSUTF8StringEncoding)) as String! 
    print(_Image)   
} 
+0

私は同じコード行を使用しています。条件が私の問題でない場合は、内部に入ります。 tableimagearray [indexpath.row]にはデータがありますが、var _Image:String = String(data:array [indexPath.row]、encoding:NSUTF8StringEncoding)を配置します。この行は見つからなかった –

0

UTF8エンコーディングで直接画像データをStringに変換することはできません。

NSDataStringに変換する方法は、Base64エンコーディングに関係なくです。

let imageData = tableImageArray[indexPath.row] 
let image = imageData.base64EncodedStringWithOptions([]) 
関連する問題