mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This allows "obj.description!" to work on iOS when 'obj' is an AnyObject, even though 'description' is an implicit property created by the importer. Swift SVN r18149
95 lines
1.9 KiB
Swift
95 lines
1.9 KiB
Swift
// RUN: %target-run-simple-swift | FileCheck %s
|
|
|
|
import Foundation
|
|
|
|
var a: NSArray = ["one", 2, [1,2,3]]
|
|
var a_m: NSMutableArray = ["two", 12, [11,12,13]]
|
|
|
|
// CHECK: one
|
|
// CHECK: 2
|
|
// CHECK: (
|
|
// CHECK: 1,
|
|
// CHECK: 2,
|
|
// CHECK: 3
|
|
// CHECK: )
|
|
for x: AnyObject in a {
|
|
println(x.description!)
|
|
}
|
|
|
|
// CHECK: two
|
|
// CHECK: 12
|
|
// CHECK: (
|
|
// CHECK: 11,
|
|
// CHECK: 12,
|
|
// CHECK: 13
|
|
// CHECK: )
|
|
for x: AnyObject in a_m {
|
|
println(x.description!)
|
|
}
|
|
|
|
class Canary {
|
|
var x: Int
|
|
|
|
deinit { println("dead \(x)") }
|
|
init(_ x: Int) { self.x = x }
|
|
func chirp() { println("\(x)") }
|
|
}
|
|
|
|
autoreleasepool {
|
|
println("making array")
|
|
|
|
var b: NSArray = NSArray(objects: [Canary(1), Canary(2), Canary(3)], count: 3)
|
|
|
|
println("iterating array")
|
|
|
|
// CHECK: 1
|
|
for x: AnyObject in b {
|
|
(x as Canary)!.chirp()
|
|
break
|
|
}
|
|
|
|
// CHECK: exiting
|
|
println("exiting")
|
|
}
|
|
// CHECK: dead
|
|
// CHECK: dead
|
|
// CHECK: dead
|
|
// CHECK: exited
|
|
println("exited")
|
|
|
|
var d : NSDictionary = [415 : "Giants", 510 : "A's"]
|
|
var d_m : NSMutableDictionary = [1415 : "Big Giants", 11510 : "B's"]
|
|
|
|
// CHECK: 510 => A's
|
|
for (key: AnyObject, value: AnyObject) in d {
|
|
println("\(key.description!) => \(value.description!)")
|
|
}
|
|
|
|
// CHECK: 11510 => B's
|
|
for (key: AnyObject, value: AnyObject) in d_m {
|
|
println("\(key.description!) => \(value.description!)")
|
|
}
|
|
|
|
var s = NSSet(object: "the most forward-thinking test yet")
|
|
var s_m = NSMutableSet(object: "the next most forward-thinking test yet")
|
|
|
|
// CHECK: the most forward-thinking test yet
|
|
for x: AnyObject in s {
|
|
println(x.description!)
|
|
}
|
|
|
|
// CHECK: the next most forward-thinking test yet
|
|
for x: AnyObject in s_m {
|
|
println(x.description!)
|
|
}
|
|
|
|
// Enumeration over an NSSwiftArray
|
|
// CHECK: hello
|
|
// CHECK: bridged
|
|
// CHECK: array
|
|
var a2 = ["hello", "bridged", "array"]
|
|
var nsa2 : NSArray = ((a2.asCocoaArray() as AnyObject) as NSArray)!
|
|
for x: AnyObject in nsa2 {
|
|
println(x.description!)
|
|
}
|