
非常詭異的現(xiàn)象,字典里明明是"Dsdcdc",取出來就少了幾個(gè)字節(jié)?!
當(dāng)然,最后發(fā)現(xiàn)問題也很簡單。原本的text是我從NSData轉(zhuǎn)出來的,結(jié)果系統(tǒng)給后面加了一些尾巴

NSData轉(zhuǎn)NSString用的這個(gè)方法
[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
initWithData:encoding的文檔特別說明,里面的數(shù)據(jù)會先轉(zhuǎn)換為UTF-16,結(jié)果里面一個(gè)'\0'會變成2個(gè)
An NSString object initialized by converting the bytes in data into UTF-16 code units using encoding. The returned object may be different from the original receiver. Returns nil if the initialization fails for some reason (for example if data does not represent valid data for encoding).
當(dāng)把這個(gè)string丟給UITextFiled,能正常顯示0前面的,繼續(xù)輸入文字內(nèi)部調(diào)用append方法,加到了'\0'后面。Debugger能全部顯示,但是你po處理就只有前面一部分。
正確的方法是UTF8的data轉(zhuǎn)NSString,用下面的方法可以了
[NSString stringWithUTF8String:data.bytes];;