2016-10-14 21 views
6

Làm thế nào chúng ta có thể chuyển đổi anyobject thành chuỗi trong 3 nhanh chóng, nó rất dễ dàng trong phiên bản cũ bằng cách sử dụng.swift 3 - ios: convert anyObject thành chuỗi

var str = toString(AnyObject) 

Tôi đã thử String(AnyObject) nhưng đầu ra luôn là tùy chọn, ngay cả khi tôi chắc chắn rằng AnyObject không phải là giá trị tùy chọn.

Trả lời

13

Trình biên dịch cho thấy rằng bạn thay thế mã của bạn với:

let s = String(describing: str) 

Một lựa chọn khác là có sẵn nếu bạn có một tình huống mà bạn muốn âm thầm thất bại với một chuỗi rỗng thay hơn là lưu trữ thứ gì đó có thể không phải ban đầu là chuỗi dưới dạng chuỗi.

let s = str as? String ?? "" 

nếu không bạn có cách xác định và đưa ra câu trả lời ở trên/dưới.

0

thử này -

var str:AnyObject? 
str = "Hello, playground" as AnyObject? 
if let value = str 
{ 
    var a = value as! String 
} 

HOẶC

var a = str as? String 
+0

Thats hoạt động, cảm ơn bạn – Anthony

+1

Bạn phải đảm bảo rằng 'AnyObject' có giá trị nếu bạn đang sử dụng' as! 'Nếu không nó sẽ bị lỗi. –

2

Hãy thử

let a = "Test" as AnyObject 
guard let b = a as? String else { // Something went wrong handle it here } 
print(b) // Test 
4

Dưới đây là ba lựa chọn cho bạn:

Lựa chọn 1 - nếu chúng ta hãy

if let b = a as? String { 
    print(b) // Was a string 
} else { 
    print("Error") // Was not a string 
} 

Lựa chọn 2 - bảo vệ chúng ta hãy

guard let b = a as? String 
else { 
    print("Error") // Was not a string 
    return // needs a return or break here 
} 
print(b) // Was a string 

Lựa chọn 3 - hãy với ?? (Null điều hành coalescing)

let b = a as? String ?? "" 
print(b) // Print a blank string if a was not a string 
Các vấn đề liên quan