\n автоматически добавлять значения массива после преобразования AnyObject в строку?
Я пытаюсь добавить значения типа AnyObject на мой arr
, но когда я сначала конвертирую AnyObject
в String
он автоматически добавляет \n с каждым значением? Я не хотел меняться arr
Тип и структура. Может кто-нибудь, пожалуйста, скажите мне, что я делаю?? Спасибо
var arr : [(String, String)] = [("https://www.youtube.com/watch?v=AtKZKl7Bgu0","6.jpg"),
("https://www.youtube.com/watch?v=4SYlLi5djz0","7.jpg")]
var url : [String] = []
var image : [String] = []
for i in arr{
url.append(i.0)
image.append(i.1)
print("URL values.............. \(url)")
print("Image values.............. \(image)")
}
NSUserDefaults.standardUserDefaults().setObject(url, forKey: "u")
NSUserDefaults.standardUserDefaults().setObject(image, forKey: "i")
NSUserDefaults.standardUserDefaults().synchronize()
let u = NSUserDefaults.standardUserDefaults().objectForKey("u")! //as! String
let i = NSUserDefaults.standardUserDefaults().objectForKey("i")!
print("U Values \(u)")
print("I values \(i)")
// let tup = ("\(u)", "\(i)")
let tup = (String(u),String(i))
print("tup Values \(tup)")
arr.removeAll()
arr.append(tup)
print("arr Values \(arr)")
1 ответ
Решение
print
добавляет новые строки: ваши объекты неизменны, нигде не добавлено \n, это только в печатном представлении.
Он не добавляет символ новой строки при печати объектов после их объявления, поскольку их тип известен (String), поэтому print
просто печатает строки без необходимости угадывать.
Но после того, как вы вернете свои ценности из NSUserDefaults.standardUserDefaults().objectForKey
их тип AnyObject
, так print
ведет себя совершенно по-другому.