├── README.playground ├── section-1.swift ├── section-9.swift ├── section-7.swift ├── section-3.swift ├── Documentation │ ├── stylesheet.css │ ├── section-8.html │ ├── section-0.html │ ├── section-4.html │ ├── section-6.html │ ├── section-2.html │ └── section-10.html ├── section-5.swift └── contents.xcplayground ├── Swift-PriorityQueue.xcodeproj ├── project.xcworkspace │ └── contents.xcworkspacedata ├── xcshareddata │ └── xcschemes │ │ ├── PriorityQueue-OSX.xcscheme │ │ └── PriorityQueue-iOS.xcscheme └── project.pbxproj ├── PriorityQueueTests ├── Info.plist └── PriorityQueueTests.swift ├── PriorityQueue ├── Info.plist └── PriorityQueue.swift ├── LICENSE └── README.md /README.playground/section-1.swift: -------------------------------------------------------------------------------- 1 | import PriorityQueue -------------------------------------------------------------------------------- /README.playground/section-9.swift: -------------------------------------------------------------------------------- 1 | ints.push(5) 2 | ints.push(4) 3 | ints.heap // Returns [4, 5] -------------------------------------------------------------------------------- /README.playground/section-7.swift: -------------------------------------------------------------------------------- 1 | var ints = PriorityQueue(<) 2 | ints.push(3) 3 | ints.remove(3) // Returns 3 4 | ints.remove(3) // Returns nil -------------------------------------------------------------------------------- /README.playground/section-3.swift: -------------------------------------------------------------------------------- 1 | var characters = PriorityQueue(<) 2 | characters.push("C") 3 | characters.push("B") 4 | characters.push("A") 5 | 6 | println("Characters:") 7 | for p in characters { 8 | println(" * \(p)") 9 | } 10 | println() -------------------------------------------------------------------------------- /Swift-PriorityQueue.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /README.playground/Documentation/stylesheet.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-size: 62.5%; 3 | } 4 | 5 | body { 6 | background-color: #fff; 7 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 8 | font-size: 1.3rem; 9 | padding-left: 20px; 10 | } 11 | 12 | section { 13 | padding-top: 10px; 14 | padding-bottom: 20px; 15 | -webkit-overflow-scrolling: touch; 16 | } 17 | -------------------------------------------------------------------------------- /README.playground/section-5.swift: -------------------------------------------------------------------------------- 1 | struct Node { 2 | let priority: Int 3 | } 4 | 5 | var nodes = PriorityQueue({ $0.priority < $1.priority }) 6 | nodes.push(Node(priority: 4)) 7 | nodes.push(Node(priority: 5)) 8 | nodes.push(Node(priority: 3)) 9 | nodes.push(Node(priority: 1)) 10 | 11 | println("Nodes:") 12 | for node in nodes { 13 | println(" * Node(priority: \(node.priority))") 14 | } 15 | println() -------------------------------------------------------------------------------- /README.playground/Documentation/section-8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Section 9 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |

Inspecting the heap

15 | 16 |
17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /README.playground/Documentation/section-0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Section 1 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |

Swift-PriorityQueue

15 |

When included as a framework, import it as any other framework:

16 | 17 |
18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /README.playground/Documentation/section-4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Section 5 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |

This would print:

15 |
 * A
16 |  * B
17 |  * C
18 | 

A more real-world use-case would operate on structs or classes, like this:

19 | 20 |
21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /README.playground/Documentation/section-6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Section 7 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |

This would print:

15 |
Nodes:
16 | * Node(priority: 1)
17 | * Node(priority: 3)
18 | * Node(priority: 4)
19 | * Node(priority: 5)
20 | 

Removing items

21 | 22 |
23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /README.playground/Documentation/section-2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Section 3 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |

The priority queue is defined as a generic and initialized with a comparison 15 | callback, like PriorityQueue<T>((T, T) -> Bool). For example, it can 16 | operate on characters like this:

17 | 18 |
19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /PriorityQueueTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | nl.webatom.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /PriorityQueue/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | nl.webatom.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /README.playground/Documentation/section-10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Section 11 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |

Alternatives

15 |
    16 |
  • CFBinaryHeap (once CFunctionPointer becomes available)
  • 17 |
  • Swift-DataStructures/MinPQ
  • 18 |
19 |

Development

20 |

Playground

21 |

Rebuild this playground with the following command:

22 |
rm -rf README.playground/
23 | playground README.md --platform ios
24 | 
25 |
26 |
27 | 28 | 29 | -------------------------------------------------------------------------------- /README.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2014-2015 Bouke Haarsma 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 7 | of the Software, and to permit persons to whom the Software is furnished to do 8 | so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Swift-PriorityQueue 2 | 3 | When included as a framework, import it as any other framework: 4 | 5 | ```swift 6 | import PriorityQueue 7 | ``` 8 | 9 | The priority queue is defined as a generic and initialized with a comparison 10 | callback, like `PriorityQueue((T, T) -> Bool)`. For example, it can 11 | operate on characters like this: 12 | 13 | ```swift 14 | var characters = PriorityQueue(<) 15 | characters.push("C") 16 | characters.push("B") 17 | characters.push("A") 18 | 19 | println("Characters:") 20 | for p in characters { 21 | println(" * \(p)") 22 | } 23 | println() 24 | ``` 25 | 26 | This would print: 27 | 28 | * A 29 | * B 30 | * C 31 | 32 | A more real-world use-case would operate on structs or classes, like this: 33 | 34 | ```swift 35 | struct Node { 36 | let priority: Int 37 | } 38 | 39 | var nodes = PriorityQueue({ $0.priority < $1.priority }) 40 | nodes.push(Node(priority: 4)) 41 | nodes.push(Node(priority: 5)) 42 | nodes.push(Node(priority: 3)) 43 | nodes.push(Node(priority: 1)) 44 | 45 | println("Nodes:") 46 | for node in nodes { 47 | println(" * Node(priority: \(node.priority))") 48 | } 49 | println() 50 | ``` 51 | 52 | This would print: 53 | 54 | Nodes: 55 | * Node(priority: 1) 56 | * Node(priority: 3) 57 | * Node(priority: 4) 58 | * Node(priority: 5) 59 | 60 | ## Removing items 61 | 62 | ```swift 63 | var ints = PriorityQueue(<) 64 | ints.push(3) 65 | ints.remove(3) // Returns 3 66 | ints.remove(3) // Returns nil 67 | ``` 68 | 69 | ## Inspecting the heap 70 | 71 | ```swift 72 | ints.push(5) 73 | ints.push(4) 74 | ints.heap // Returns [4, 5] 75 | ``` 76 | 77 | # Alternatives 78 | 79 | * [CFBinaryHeap](https://developer.apple.com/reference/corefoundation/cfbinaryheap-s11) (once CFunctionPointer becomes available) 80 | * [Swift-DataStructures/MinPQ](https://github.com/ikaver/Swift-DataStructures) 81 | * [davecom/SwiftPriorityQueue](https://github.com/davecom/SwiftPriorityQueue) 82 | 83 | # Development 84 | ## Playground 85 | 86 | Rebuild this playground with the following command: 87 | 88 | rm -rf README.playground/ 89 | playground README.md --platform ios 90 | 91 | ## Credits 92 | 93 | This library was written by [Bouke Haarsma](https://twitter.com/BoukeHaarsma). 94 | -------------------------------------------------------------------------------- /PriorityQueue/PriorityQueue.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PriorityQueue.swift 3 | // Swift-PriorityQueue 4 | // 5 | // Created by Bouke Haarsma on 12-02-15. 6 | // Copyright (c) 2015 Bouke Haarsma. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public class PriorityQueue { 12 | 13 | private final var _heap: [T] 14 | private let compare: (T, T) -> Bool 15 | 16 | public init(_ compare: (T, T) -> Bool) { 17 | _heap = [] 18 | self.compare = compare 19 | } 20 | 21 | public func push(newElement: T) { 22 | _heap.append(newElement) 23 | siftUp(_heap.endIndex - 1) 24 | } 25 | 26 | public func pop() -> T? { 27 | if _heap.count == 0 { 28 | return nil 29 | } 30 | if _heap.count == 1 { 31 | return _heap.removeLast() 32 | } 33 | swap(&_heap[0], &_heap[_heap.endIndex - 1]) 34 | let pop = _heap.removeLast() 35 | siftDown(0) 36 | return pop 37 | } 38 | 39 | private func siftDown(index: Int) -> Bool { 40 | let left = index * 2 + 1 41 | let right = index * 2 + 2 42 | var smallest = index 43 | 44 | if left < _heap.count && compare(_heap[left], _heap[smallest]) { 45 | smallest = left 46 | } 47 | if right < _heap.count && compare(_heap[right], _heap[smallest]) { 48 | smallest = right 49 | } 50 | if smallest != index { 51 | swap(&_heap[index], &_heap[smallest]) 52 | siftDown(smallest) 53 | return true 54 | } 55 | return false 56 | } 57 | 58 | private func siftUp(index: Int) -> Bool { 59 | if index == 0 { 60 | return false 61 | } 62 | let parent = (index - 1) >> 1 63 | if compare(_heap[index], _heap[parent]) { 64 | swap(&_heap[index], &_heap[parent]) 65 | siftUp(parent) 66 | return true 67 | } 68 | return false 69 | } 70 | } 71 | 72 | extension PriorityQueue { 73 | public var count: Int { 74 | return _heap.count 75 | } 76 | 77 | public var isEmpty: Bool { 78 | return _heap.isEmpty 79 | } 80 | 81 | public func update(element: T2) -> T? { 82 | assert(element is T) // How to enforce this with type constraints? 83 | for (index, item) in _heap.enumerate() { 84 | if (item as! T2) == element { 85 | _heap[index] = element as! T 86 | if siftDown(index) || siftUp(index) { 87 | return item 88 | } 89 | } 90 | } 91 | return nil 92 | } 93 | 94 | public func remove(element: T2) -> T? { 95 | assert(element is T) // How to enforce this with type constraints? 96 | for (index, item) in _heap.enumerate() { 97 | if (item as! T2) == element { 98 | swap(&_heap[index], &_heap[_heap.endIndex - 1]) 99 | _heap.removeLast() 100 | siftDown(index) 101 | return item 102 | } 103 | } 104 | return nil 105 | } 106 | 107 | public var heap: [T] { 108 | return _heap 109 | } 110 | 111 | public func removeAll() { 112 | _heap.removeAll() 113 | } 114 | } 115 | 116 | extension PriorityQueue: GeneratorType { 117 | public typealias Element = T 118 | public func next() -> Element? { 119 | return pop() 120 | } 121 | } 122 | 123 | extension PriorityQueue: SequenceType { 124 | public typealias Generator = PriorityQueue 125 | public func generate() -> Generator { 126 | return self 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /PriorityQueueTests/PriorityQueueTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Swift_PriorityQueueTests.swift 3 | // Swift-PriorityQueueTests 4 | // 5 | // Created by Bouke Haarsma on 12-02-15. 6 | // Copyright (c) 2015 Bouke Haarsma. All rights reserved. 7 | // 8 | 9 | import PriorityQueue 10 | import Foundation 11 | import XCTest 12 | 13 | 14 | class PriorityQueueTests: XCTestCase { 15 | func testSimple() { 16 | var queue = PriorityQueue(<) 17 | queue.push(10) 18 | queue.push(2) 19 | queue.push(3) 20 | queue.push(1) 21 | queue.push(2) 22 | queue.push(3) 23 | queue.push(9) 24 | queue.push(5) 25 | 26 | XCTAssertEqual(1, queue.next()!) 27 | XCTAssertEqual(2, queue.next()!) 28 | XCTAssertEqual(2, queue.next()!) 29 | XCTAssertEqual(3, queue.next()!) 30 | XCTAssertEqual(3, queue.next()!) 31 | XCTAssertEqual(5, queue.next()!) 32 | XCTAssertEqual(9, queue.next()!) 33 | XCTAssertEqual(10, queue.next()!) 34 | XCTAssertTrue(queue.next() == nil) 35 | 36 | queue.push(11) 37 | XCTAssertEqual(11, queue.remove(11) ?? -1) 38 | XCTAssertNil(queue.remove(11)) 39 | } 40 | 41 | func testRandom() { 42 | var queue = PriorityQueue(<) 43 | for var i = 0; i < 10000; i += 1 { 44 | queue.push(arc4random()) 45 | } 46 | var current: UInt32 = 0 47 | for item in queue { 48 | XCTAssertGreaterThanOrEqual(item, current) 49 | current = item 50 | } 51 | } 52 | 53 | func testUpdate() { 54 | var queue = PriorityQueue({ $0.priority < $1.priority }) 55 | let items = [ 56 | Item(priority: 1), 57 | Item(priority: 2), 58 | Item(priority: 3), 59 | Item(priority: 4), 60 | ] 61 | items.map { queue.push($0) } 62 | items[3].priority = 0 63 | XCTAssertTrue(queue.update(items[3]) == items[3]) 64 | XCTAssertEqual(Array(queue), [items[3], items[0], items[1], items[2]]) 65 | 66 | items.map { queue.push($0) } 67 | items[3].priority = 5 68 | XCTAssertTrue(queue.update(items[3]) == items[3]) 69 | XCTAssertEqual(Array(queue), [items[0], items[1], items[2], items[3]]) 70 | } 71 | 72 | func testRemove() { 73 | var queue = PriorityQueue(<) 74 | (1...7).map { queue.push($0) } 75 | XCTAssertTrue(queue.remove(3) == 3) 76 | XCTAssertEqual(Array(queue), [1,2,4,5,6,7]) 77 | } 78 | 79 | func testPushPerformance() { 80 | measureMetrics(self.dynamicType.defaultPerformanceMetrics(), automaticallyStartMeasuring:false) { 81 | var queue = PriorityQueue(<) 82 | self.startMeasuring() 83 | for var i = 0; i < 10000; i += 1 { 84 | queue.push(arc4random()) 85 | } 86 | self.stopMeasuring() 87 | } 88 | } 89 | 90 | func testPopPerformance() { 91 | measureMetrics(self.dynamicType.defaultPerformanceMetrics(), automaticallyStartMeasuring:false) { 92 | var queue = PriorityQueue(<) 93 | for var i = 0; i < 1000; i += 1 { 94 | queue.push(arc4random()) 95 | } 96 | 97 | self.startMeasuring() 98 | for p in queue {} 99 | self.stopMeasuring() 100 | } 101 | } 102 | } 103 | 104 | private class Item { 105 | var priority: Int 106 | init(priority: Int) { 107 | self.priority = priority 108 | } 109 | } 110 | 111 | extension Item: Equatable { 112 | } 113 | 114 | private func == (lhs: Item, rhs: Item) -> Bool { 115 | return lhs === rhs 116 | } 117 | -------------------------------------------------------------------------------- /Swift-PriorityQueue.xcodeproj/xcshareddata/xcschemes/PriorityQueue-OSX.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 67 | 68 | 78 | 79 | 85 | 86 | 87 | 88 | 89 | 90 | 96 | 97 | 103 | 104 | 105 | 106 | 108 | 109 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /Swift-PriorityQueue.xcodeproj/xcshareddata/xcschemes/PriorityQueue-iOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 67 | 68 | 78 | 79 | 85 | 86 | 87 | 88 | 89 | 90 | 96 | 97 | 103 | 104 | 105 | 106 | 108 | 109 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /Swift-PriorityQueue.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | D5C03D461A8DD1AD00FBD3C5 /* PriorityQueue.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5F72F2C1A8D423C006A0BE9 /* PriorityQueue.framework */; }; 11 | D5C03D661A8DD26A00FBD3C5 /* PriorityQueue.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C03D4C1A8DD1D800FBD3C5 /* PriorityQueue.framework */; }; 12 | D5C03D671A8DD40400FBD3C5 /* PriorityQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5F72F451A8D4273006A0BE9 /* PriorityQueue.swift */; }; 13 | D5C03D681A8DD40900FBD3C5 /* PriorityQueueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5F72F3D1A8D423C006A0BE9 /* PriorityQueueTests.swift */; }; 14 | D5F72F3E1A8D423C006A0BE9 /* PriorityQueueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5F72F3D1A8D423C006A0BE9 /* PriorityQueueTests.swift */; }; 15 | D5F72F461A8D4273006A0BE9 /* PriorityQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5F72F451A8D4273006A0BE9 /* PriorityQueue.swift */; }; 16 | /* End PBXBuildFile section */ 17 | 18 | /* Begin PBXContainerItemProxy section */ 19 | D5C03D581A8DD1D800FBD3C5 /* PBXContainerItemProxy */ = { 20 | isa = PBXContainerItemProxy; 21 | containerPortal = D5F72F001A8D4120006A0BE9 /* Project object */; 22 | proxyType = 1; 23 | remoteGlobalIDString = D5C03D4B1A8DD1D800FBD3C5; 24 | remoteInfo = "PriorityQueue-OSX"; 25 | }; 26 | D5F72F381A8D423C006A0BE9 /* PBXContainerItemProxy */ = { 27 | isa = PBXContainerItemProxy; 28 | containerPortal = D5F72F001A8D4120006A0BE9 /* Project object */; 29 | proxyType = 1; 30 | remoteGlobalIDString = D5F72F2B1A8D423C006A0BE9; 31 | remoteInfo = PriorityQueue; 32 | }; 33 | /* End PBXContainerItemProxy section */ 34 | 35 | /* Begin PBXFileReference section */ 36 | D5AF859F1A8D494E00534CB9 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 37 | D5C03D4C1A8DD1D800FBD3C5 /* PriorityQueue.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PriorityQueue.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 38 | D5C03D561A8DD1D800FBD3C5 /* PriorityQueue-OSXTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "PriorityQueue-OSXTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | D5C1D4B91A8D442C00C3F3E3 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 40 | D5C1D4BB1A8D45E000C3F3E3 /* README.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = README.playground; sourceTree = ""; }; 41 | D5F72F2C1A8D423C006A0BE9 /* PriorityQueue.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PriorityQueue.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 42 | D5F72F2F1A8D423C006A0BE9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 43 | D5F72F361A8D423C006A0BE9 /* PriorityQueue-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "PriorityQueue-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 44 | D5F72F3C1A8D423C006A0BE9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 45 | D5F72F3D1A8D423C006A0BE9 /* PriorityQueueTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PriorityQueueTests.swift; sourceTree = ""; }; 46 | D5F72F451A8D4273006A0BE9 /* PriorityQueue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PriorityQueue.swift; sourceTree = ""; }; 47 | /* End PBXFileReference section */ 48 | 49 | /* Begin PBXFrameworksBuildPhase section */ 50 | D5C03D481A8DD1D800FBD3C5 /* Frameworks */ = { 51 | isa = PBXFrameworksBuildPhase; 52 | buildActionMask = 2147483647; 53 | files = ( 54 | ); 55 | runOnlyForDeploymentPostprocessing = 0; 56 | }; 57 | D5C03D531A8DD1D800FBD3C5 /* Frameworks */ = { 58 | isa = PBXFrameworksBuildPhase; 59 | buildActionMask = 2147483647; 60 | files = ( 61 | D5C03D661A8DD26A00FBD3C5 /* PriorityQueue.framework in Frameworks */, 62 | ); 63 | runOnlyForDeploymentPostprocessing = 0; 64 | }; 65 | D5F72F281A8D423C006A0BE9 /* Frameworks */ = { 66 | isa = PBXFrameworksBuildPhase; 67 | buildActionMask = 2147483647; 68 | files = ( 69 | ); 70 | runOnlyForDeploymentPostprocessing = 0; 71 | }; 72 | D5F72F331A8D423C006A0BE9 /* Frameworks */ = { 73 | isa = PBXFrameworksBuildPhase; 74 | buildActionMask = 2147483647; 75 | files = ( 76 | D5C03D461A8DD1AD00FBD3C5 /* PriorityQueue.framework in Frameworks */, 77 | ); 78 | runOnlyForDeploymentPostprocessing = 0; 79 | }; 80 | /* End PBXFrameworksBuildPhase section */ 81 | 82 | /* Begin PBXGroup section */ 83 | D5F72EFF1A8D4120006A0BE9 = { 84 | isa = PBXGroup; 85 | children = ( 86 | D5AF859F1A8D494E00534CB9 /* LICENSE */, 87 | D5C1D4B91A8D442C00C3F3E3 /* README.md */, 88 | D5C1D4BB1A8D45E000C3F3E3 /* README.playground */, 89 | D5F72F2D1A8D423C006A0BE9 /* PriorityQueue */, 90 | D5F72F3A1A8D423C006A0BE9 /* PriorityQueueTests */, 91 | D5F72F0A1A8D4120006A0BE9 /* Products */, 92 | ); 93 | sourceTree = ""; 94 | }; 95 | D5F72F0A1A8D4120006A0BE9 /* Products */ = { 96 | isa = PBXGroup; 97 | children = ( 98 | D5F72F2C1A8D423C006A0BE9 /* PriorityQueue.framework */, 99 | D5F72F361A8D423C006A0BE9 /* PriorityQueue-iOSTests.xctest */, 100 | D5C03D4C1A8DD1D800FBD3C5 /* PriorityQueue.framework */, 101 | D5C03D561A8DD1D800FBD3C5 /* PriorityQueue-OSXTests.xctest */, 102 | ); 103 | name = Products; 104 | sourceTree = ""; 105 | }; 106 | D5F72F2D1A8D423C006A0BE9 /* PriorityQueue */ = { 107 | isa = PBXGroup; 108 | children = ( 109 | D5F72F451A8D4273006A0BE9 /* PriorityQueue.swift */, 110 | D5F72F2E1A8D423C006A0BE9 /* Supporting Files */, 111 | ); 112 | path = PriorityQueue; 113 | sourceTree = ""; 114 | }; 115 | D5F72F2E1A8D423C006A0BE9 /* Supporting Files */ = { 116 | isa = PBXGroup; 117 | children = ( 118 | D5F72F2F1A8D423C006A0BE9 /* Info.plist */, 119 | ); 120 | name = "Supporting Files"; 121 | sourceTree = ""; 122 | }; 123 | D5F72F3A1A8D423C006A0BE9 /* PriorityQueueTests */ = { 124 | isa = PBXGroup; 125 | children = ( 126 | D5F72F3D1A8D423C006A0BE9 /* PriorityQueueTests.swift */, 127 | D5F72F3B1A8D423C006A0BE9 /* Supporting Files */, 128 | ); 129 | path = PriorityQueueTests; 130 | sourceTree = ""; 131 | }; 132 | D5F72F3B1A8D423C006A0BE9 /* Supporting Files */ = { 133 | isa = PBXGroup; 134 | children = ( 135 | D5F72F3C1A8D423C006A0BE9 /* Info.plist */, 136 | ); 137 | name = "Supporting Files"; 138 | sourceTree = ""; 139 | }; 140 | /* End PBXGroup section */ 141 | 142 | /* Begin PBXHeadersBuildPhase section */ 143 | D5C03D491A8DD1D800FBD3C5 /* Headers */ = { 144 | isa = PBXHeadersBuildPhase; 145 | buildActionMask = 2147483647; 146 | files = ( 147 | ); 148 | runOnlyForDeploymentPostprocessing = 0; 149 | }; 150 | D5F72F291A8D423C006A0BE9 /* Headers */ = { 151 | isa = PBXHeadersBuildPhase; 152 | buildActionMask = 2147483647; 153 | files = ( 154 | ); 155 | runOnlyForDeploymentPostprocessing = 0; 156 | }; 157 | /* End PBXHeadersBuildPhase section */ 158 | 159 | /* Begin PBXNativeTarget section */ 160 | D5C03D4B1A8DD1D800FBD3C5 /* PriorityQueue-OSX */ = { 161 | isa = PBXNativeTarget; 162 | buildConfigurationList = D5C03D5F1A8DD1D800FBD3C5 /* Build configuration list for PBXNativeTarget "PriorityQueue-OSX" */; 163 | buildPhases = ( 164 | D5C03D471A8DD1D800FBD3C5 /* Sources */, 165 | D5C03D481A8DD1D800FBD3C5 /* Frameworks */, 166 | D5C03D491A8DD1D800FBD3C5 /* Headers */, 167 | D5C03D4A1A8DD1D800FBD3C5 /* Resources */, 168 | ); 169 | buildRules = ( 170 | ); 171 | dependencies = ( 172 | ); 173 | name = "PriorityQueue-OSX"; 174 | productName = "PriorityQueue-OSX"; 175 | productReference = D5C03D4C1A8DD1D800FBD3C5 /* PriorityQueue.framework */; 176 | productType = "com.apple.product-type.framework"; 177 | }; 178 | D5C03D551A8DD1D800FBD3C5 /* PriorityQueue-OSXTests */ = { 179 | isa = PBXNativeTarget; 180 | buildConfigurationList = D5C03D621A8DD1D800FBD3C5 /* Build configuration list for PBXNativeTarget "PriorityQueue-OSXTests" */; 181 | buildPhases = ( 182 | D5C03D521A8DD1D800FBD3C5 /* Sources */, 183 | D5C03D531A8DD1D800FBD3C5 /* Frameworks */, 184 | D5C03D541A8DD1D800FBD3C5 /* Resources */, 185 | ); 186 | buildRules = ( 187 | ); 188 | dependencies = ( 189 | D5C03D591A8DD1D800FBD3C5 /* PBXTargetDependency */, 190 | ); 191 | name = "PriorityQueue-OSXTests"; 192 | productName = "PriorityQueue-OSXTests"; 193 | productReference = D5C03D561A8DD1D800FBD3C5 /* PriorityQueue-OSXTests.xctest */; 194 | productType = "com.apple.product-type.bundle.unit-test"; 195 | }; 196 | D5F72F2B1A8D423C006A0BE9 /* PriorityQueue-iOS */ = { 197 | isa = PBXNativeTarget; 198 | buildConfigurationList = D5F72F3F1A8D423C006A0BE9 /* Build configuration list for PBXNativeTarget "PriorityQueue-iOS" */; 199 | buildPhases = ( 200 | D5F72F271A8D423C006A0BE9 /* Sources */, 201 | D5F72F281A8D423C006A0BE9 /* Frameworks */, 202 | D5F72F291A8D423C006A0BE9 /* Headers */, 203 | D5F72F2A1A8D423C006A0BE9 /* Resources */, 204 | ); 205 | buildRules = ( 206 | ); 207 | dependencies = ( 208 | ); 209 | name = "PriorityQueue-iOS"; 210 | productName = PriorityQueue; 211 | productReference = D5F72F2C1A8D423C006A0BE9 /* PriorityQueue.framework */; 212 | productType = "com.apple.product-type.framework"; 213 | }; 214 | D5F72F351A8D423C006A0BE9 /* PriorityQueue-iOSTests */ = { 215 | isa = PBXNativeTarget; 216 | buildConfigurationList = D5F72F421A8D423C006A0BE9 /* Build configuration list for PBXNativeTarget "PriorityQueue-iOSTests" */; 217 | buildPhases = ( 218 | D5F72F321A8D423C006A0BE9 /* Sources */, 219 | D5F72F331A8D423C006A0BE9 /* Frameworks */, 220 | D5F72F341A8D423C006A0BE9 /* Resources */, 221 | ); 222 | buildRules = ( 223 | ); 224 | dependencies = ( 225 | D5F72F391A8D423C006A0BE9 /* PBXTargetDependency */, 226 | ); 227 | name = "PriorityQueue-iOSTests"; 228 | productName = PriorityQueueTests; 229 | productReference = D5F72F361A8D423C006A0BE9 /* PriorityQueue-iOSTests.xctest */; 230 | productType = "com.apple.product-type.bundle.unit-test"; 231 | }; 232 | /* End PBXNativeTarget section */ 233 | 234 | /* Begin PBXProject section */ 235 | D5F72F001A8D4120006A0BE9 /* Project object */ = { 236 | isa = PBXProject; 237 | attributes = { 238 | LastSwiftUpdateCheck = 0720; 239 | LastUpgradeCheck = 0610; 240 | ORGANIZATIONNAME = "Bouke Haarsma"; 241 | TargetAttributes = { 242 | D5C03D4B1A8DD1D800FBD3C5 = { 243 | CreatedOnToolsVersion = 6.1.1; 244 | }; 245 | D5C03D551A8DD1D800FBD3C5 = { 246 | CreatedOnToolsVersion = 6.1.1; 247 | }; 248 | D5F72F2B1A8D423C006A0BE9 = { 249 | CreatedOnToolsVersion = 6.1.1; 250 | }; 251 | D5F72F351A8D423C006A0BE9 = { 252 | CreatedOnToolsVersion = 6.1.1; 253 | }; 254 | }; 255 | }; 256 | buildConfigurationList = D5F72F031A8D4120006A0BE9 /* Build configuration list for PBXProject "Swift-PriorityQueue" */; 257 | compatibilityVersion = "Xcode 3.2"; 258 | developmentRegion = English; 259 | hasScannedForEncodings = 0; 260 | knownRegions = ( 261 | en, 262 | ); 263 | mainGroup = D5F72EFF1A8D4120006A0BE9; 264 | productRefGroup = D5F72F0A1A8D4120006A0BE9 /* Products */; 265 | projectDirPath = ""; 266 | projectRoot = ""; 267 | targets = ( 268 | D5F72F2B1A8D423C006A0BE9 /* PriorityQueue-iOS */, 269 | D5F72F351A8D423C006A0BE9 /* PriorityQueue-iOSTests */, 270 | D5C03D4B1A8DD1D800FBD3C5 /* PriorityQueue-OSX */, 271 | D5C03D551A8DD1D800FBD3C5 /* PriorityQueue-OSXTests */, 272 | ); 273 | }; 274 | /* End PBXProject section */ 275 | 276 | /* Begin PBXResourcesBuildPhase section */ 277 | D5C03D4A1A8DD1D800FBD3C5 /* Resources */ = { 278 | isa = PBXResourcesBuildPhase; 279 | buildActionMask = 2147483647; 280 | files = ( 281 | ); 282 | runOnlyForDeploymentPostprocessing = 0; 283 | }; 284 | D5C03D541A8DD1D800FBD3C5 /* Resources */ = { 285 | isa = PBXResourcesBuildPhase; 286 | buildActionMask = 2147483647; 287 | files = ( 288 | ); 289 | runOnlyForDeploymentPostprocessing = 0; 290 | }; 291 | D5F72F2A1A8D423C006A0BE9 /* Resources */ = { 292 | isa = PBXResourcesBuildPhase; 293 | buildActionMask = 2147483647; 294 | files = ( 295 | ); 296 | runOnlyForDeploymentPostprocessing = 0; 297 | }; 298 | D5F72F341A8D423C006A0BE9 /* Resources */ = { 299 | isa = PBXResourcesBuildPhase; 300 | buildActionMask = 2147483647; 301 | files = ( 302 | ); 303 | runOnlyForDeploymentPostprocessing = 0; 304 | }; 305 | /* End PBXResourcesBuildPhase section */ 306 | 307 | /* Begin PBXSourcesBuildPhase section */ 308 | D5C03D471A8DD1D800FBD3C5 /* Sources */ = { 309 | isa = PBXSourcesBuildPhase; 310 | buildActionMask = 2147483647; 311 | files = ( 312 | D5C03D671A8DD40400FBD3C5 /* PriorityQueue.swift in Sources */, 313 | ); 314 | runOnlyForDeploymentPostprocessing = 0; 315 | }; 316 | D5C03D521A8DD1D800FBD3C5 /* Sources */ = { 317 | isa = PBXSourcesBuildPhase; 318 | buildActionMask = 2147483647; 319 | files = ( 320 | D5C03D681A8DD40900FBD3C5 /* PriorityQueueTests.swift in Sources */, 321 | ); 322 | runOnlyForDeploymentPostprocessing = 0; 323 | }; 324 | D5F72F271A8D423C006A0BE9 /* Sources */ = { 325 | isa = PBXSourcesBuildPhase; 326 | buildActionMask = 2147483647; 327 | files = ( 328 | D5F72F461A8D4273006A0BE9 /* PriorityQueue.swift in Sources */, 329 | ); 330 | runOnlyForDeploymentPostprocessing = 0; 331 | }; 332 | D5F72F321A8D423C006A0BE9 /* Sources */ = { 333 | isa = PBXSourcesBuildPhase; 334 | buildActionMask = 2147483647; 335 | files = ( 336 | D5F72F3E1A8D423C006A0BE9 /* PriorityQueueTests.swift in Sources */, 337 | ); 338 | runOnlyForDeploymentPostprocessing = 0; 339 | }; 340 | /* End PBXSourcesBuildPhase section */ 341 | 342 | /* Begin PBXTargetDependency section */ 343 | D5C03D591A8DD1D800FBD3C5 /* PBXTargetDependency */ = { 344 | isa = PBXTargetDependency; 345 | target = D5C03D4B1A8DD1D800FBD3C5 /* PriorityQueue-OSX */; 346 | targetProxy = D5C03D581A8DD1D800FBD3C5 /* PBXContainerItemProxy */; 347 | }; 348 | D5F72F391A8D423C006A0BE9 /* PBXTargetDependency */ = { 349 | isa = PBXTargetDependency; 350 | target = D5F72F2B1A8D423C006A0BE9 /* PriorityQueue-iOS */; 351 | targetProxy = D5F72F381A8D423C006A0BE9 /* PBXContainerItemProxy */; 352 | }; 353 | /* End PBXTargetDependency section */ 354 | 355 | /* Begin XCBuildConfiguration section */ 356 | D5C03D601A8DD1D800FBD3C5 /* Debug */ = { 357 | isa = XCBuildConfiguration; 358 | buildSettings = { 359 | COMBINE_HIDPI_IMAGES = YES; 360 | DEFINES_MODULE = YES; 361 | DYLIB_COMPATIBILITY_VERSION = 1; 362 | DYLIB_CURRENT_VERSION = 1; 363 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 364 | FRAMEWORK_VERSION = A; 365 | GCC_PREPROCESSOR_DEFINITIONS = ( 366 | "DEBUG=1", 367 | "$(inherited)", 368 | ); 369 | INFOPLIST_FILE = PriorityQueue/Info.plist; 370 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 371 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 372 | MACOSX_DEPLOYMENT_TARGET = 10.10; 373 | PRODUCT_NAME = PriorityQueue; 374 | SDKROOT = macosx; 375 | SKIP_INSTALL = YES; 376 | }; 377 | name = Debug; 378 | }; 379 | D5C03D611A8DD1D800FBD3C5 /* Release */ = { 380 | isa = XCBuildConfiguration; 381 | buildSettings = { 382 | COMBINE_HIDPI_IMAGES = YES; 383 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 384 | DEFINES_MODULE = YES; 385 | DYLIB_COMPATIBILITY_VERSION = 1; 386 | DYLIB_CURRENT_VERSION = 1; 387 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 388 | FRAMEWORK_VERSION = A; 389 | INFOPLIST_FILE = PriorityQueue/Info.plist; 390 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 391 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 392 | MACOSX_DEPLOYMENT_TARGET = 10.10; 393 | PRODUCT_NAME = PriorityQueue; 394 | SDKROOT = macosx; 395 | SKIP_INSTALL = YES; 396 | }; 397 | name = Release; 398 | }; 399 | D5C03D631A8DD1D800FBD3C5 /* Debug */ = { 400 | isa = XCBuildConfiguration; 401 | buildSettings = { 402 | COMBINE_HIDPI_IMAGES = YES; 403 | FRAMEWORK_SEARCH_PATHS = ( 404 | "$(DEVELOPER_FRAMEWORKS_DIR)", 405 | "$(inherited)", 406 | ); 407 | GCC_PREPROCESSOR_DEFINITIONS = ( 408 | "DEBUG=1", 409 | "$(inherited)", 410 | ); 411 | INFOPLIST_FILE = PriorityQueueTests/Info.plist; 412 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 413 | MACOSX_DEPLOYMENT_TARGET = 10.10; 414 | PRODUCT_NAME = "$(TARGET_NAME)"; 415 | SDKROOT = macosx; 416 | }; 417 | name = Debug; 418 | }; 419 | D5C03D641A8DD1D800FBD3C5 /* Release */ = { 420 | isa = XCBuildConfiguration; 421 | buildSettings = { 422 | COMBINE_HIDPI_IMAGES = YES; 423 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 424 | FRAMEWORK_SEARCH_PATHS = ( 425 | "$(DEVELOPER_FRAMEWORKS_DIR)", 426 | "$(inherited)", 427 | ); 428 | INFOPLIST_FILE = PriorityQueueTests/Info.plist; 429 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 430 | MACOSX_DEPLOYMENT_TARGET = 10.10; 431 | PRODUCT_NAME = "$(TARGET_NAME)"; 432 | SDKROOT = macosx; 433 | }; 434 | name = Release; 435 | }; 436 | D5F72F1D1A8D4120006A0BE9 /* Debug */ = { 437 | isa = XCBuildConfiguration; 438 | buildSettings = { 439 | ALWAYS_SEARCH_USER_PATHS = NO; 440 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 441 | CLANG_CXX_LIBRARY = "libc++"; 442 | CLANG_ENABLE_MODULES = YES; 443 | CLANG_ENABLE_OBJC_ARC = YES; 444 | CLANG_WARN_BOOL_CONVERSION = YES; 445 | CLANG_WARN_CONSTANT_CONVERSION = YES; 446 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 447 | CLANG_WARN_EMPTY_BODY = YES; 448 | CLANG_WARN_ENUM_CONVERSION = YES; 449 | CLANG_WARN_INT_CONVERSION = YES; 450 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 451 | CLANG_WARN_UNREACHABLE_CODE = YES; 452 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 453 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 454 | COPY_PHASE_STRIP = NO; 455 | CURRENT_PROJECT_VERSION = 1; 456 | ENABLE_STRICT_OBJC_MSGSEND = YES; 457 | GCC_C_LANGUAGE_STANDARD = gnu99; 458 | GCC_DYNAMIC_NO_PIC = NO; 459 | GCC_OPTIMIZATION_LEVEL = 0; 460 | GCC_PREPROCESSOR_DEFINITIONS = ( 461 | "DEBUG=1", 462 | "$(inherited)", 463 | ); 464 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 465 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 466 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 467 | GCC_WARN_UNDECLARED_SELECTOR = YES; 468 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 469 | GCC_WARN_UNUSED_FUNCTION = YES; 470 | GCC_WARN_UNUSED_VARIABLE = YES; 471 | IPHONEOS_DEPLOYMENT_TARGET = 8.1; 472 | MTL_ENABLE_DEBUG_INFO = YES; 473 | ONLY_ACTIVE_ARCH = YES; 474 | SDKROOT = iphoneos; 475 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 476 | TARGETED_DEVICE_FAMILY = "1,2"; 477 | VERSIONING_SYSTEM = "apple-generic"; 478 | VERSION_INFO_PREFIX = ""; 479 | }; 480 | name = Debug; 481 | }; 482 | D5F72F1E1A8D4120006A0BE9 /* Release */ = { 483 | isa = XCBuildConfiguration; 484 | buildSettings = { 485 | ALWAYS_SEARCH_USER_PATHS = NO; 486 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 487 | CLANG_CXX_LIBRARY = "libc++"; 488 | CLANG_ENABLE_MODULES = YES; 489 | CLANG_ENABLE_OBJC_ARC = YES; 490 | CLANG_WARN_BOOL_CONVERSION = YES; 491 | CLANG_WARN_CONSTANT_CONVERSION = YES; 492 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 493 | CLANG_WARN_EMPTY_BODY = YES; 494 | CLANG_WARN_ENUM_CONVERSION = YES; 495 | CLANG_WARN_INT_CONVERSION = YES; 496 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 497 | CLANG_WARN_UNREACHABLE_CODE = YES; 498 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 499 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 500 | COPY_PHASE_STRIP = YES; 501 | CURRENT_PROJECT_VERSION = 1; 502 | ENABLE_NS_ASSERTIONS = NO; 503 | ENABLE_STRICT_OBJC_MSGSEND = YES; 504 | GCC_C_LANGUAGE_STANDARD = gnu99; 505 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 506 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 507 | GCC_WARN_UNDECLARED_SELECTOR = YES; 508 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 509 | GCC_WARN_UNUSED_FUNCTION = YES; 510 | GCC_WARN_UNUSED_VARIABLE = YES; 511 | IPHONEOS_DEPLOYMENT_TARGET = 8.1; 512 | MTL_ENABLE_DEBUG_INFO = NO; 513 | SDKROOT = iphoneos; 514 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 515 | TARGETED_DEVICE_FAMILY = "1,2"; 516 | VALIDATE_PRODUCT = YES; 517 | VERSIONING_SYSTEM = "apple-generic"; 518 | VERSION_INFO_PREFIX = ""; 519 | }; 520 | name = Release; 521 | }; 522 | D5F72F401A8D423C006A0BE9 /* Debug */ = { 523 | isa = XCBuildConfiguration; 524 | buildSettings = { 525 | CLANG_ENABLE_MODULES = YES; 526 | DEFINES_MODULE = YES; 527 | DYLIB_COMPATIBILITY_VERSION = 1; 528 | DYLIB_CURRENT_VERSION = 1; 529 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 530 | GCC_PREPROCESSOR_DEFINITIONS = ( 531 | "DEBUG=1", 532 | "$(inherited)", 533 | ); 534 | INFOPLIST_FILE = PriorityQueue/Info.plist; 535 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 536 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 537 | PRODUCT_NAME = PriorityQueue; 538 | SKIP_INSTALL = YES; 539 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 540 | }; 541 | name = Debug; 542 | }; 543 | D5F72F411A8D423C006A0BE9 /* Release */ = { 544 | isa = XCBuildConfiguration; 545 | buildSettings = { 546 | CLANG_ENABLE_MODULES = YES; 547 | DEFINES_MODULE = YES; 548 | DYLIB_COMPATIBILITY_VERSION = 1; 549 | DYLIB_CURRENT_VERSION = 1; 550 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 551 | INFOPLIST_FILE = PriorityQueue/Info.plist; 552 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 553 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 554 | PRODUCT_NAME = PriorityQueue; 555 | SKIP_INSTALL = YES; 556 | }; 557 | name = Release; 558 | }; 559 | D5F72F431A8D423C006A0BE9 /* Debug */ = { 560 | isa = XCBuildConfiguration; 561 | buildSettings = { 562 | FRAMEWORK_SEARCH_PATHS = ( 563 | "$(SDKROOT)/Developer/Library/Frameworks", 564 | "$(inherited)", 565 | ); 566 | GCC_PREPROCESSOR_DEFINITIONS = ( 567 | "DEBUG=1", 568 | "$(inherited)", 569 | ); 570 | INFOPLIST_FILE = PriorityQueueTests/Info.plist; 571 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 572 | PRODUCT_NAME = "$(TARGET_NAME)"; 573 | }; 574 | name = Debug; 575 | }; 576 | D5F72F441A8D423C006A0BE9 /* Release */ = { 577 | isa = XCBuildConfiguration; 578 | buildSettings = { 579 | FRAMEWORK_SEARCH_PATHS = ( 580 | "$(SDKROOT)/Developer/Library/Frameworks", 581 | "$(inherited)", 582 | ); 583 | INFOPLIST_FILE = PriorityQueueTests/Info.plist; 584 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 585 | PRODUCT_NAME = "$(TARGET_NAME)"; 586 | }; 587 | name = Release; 588 | }; 589 | /* End XCBuildConfiguration section */ 590 | 591 | /* Begin XCConfigurationList section */ 592 | D5C03D5F1A8DD1D800FBD3C5 /* Build configuration list for PBXNativeTarget "PriorityQueue-OSX" */ = { 593 | isa = XCConfigurationList; 594 | buildConfigurations = ( 595 | D5C03D601A8DD1D800FBD3C5 /* Debug */, 596 | D5C03D611A8DD1D800FBD3C5 /* Release */, 597 | ); 598 | defaultConfigurationIsVisible = 0; 599 | defaultConfigurationName = Release; 600 | }; 601 | D5C03D621A8DD1D800FBD3C5 /* Build configuration list for PBXNativeTarget "PriorityQueue-OSXTests" */ = { 602 | isa = XCConfigurationList; 603 | buildConfigurations = ( 604 | D5C03D631A8DD1D800FBD3C5 /* Debug */, 605 | D5C03D641A8DD1D800FBD3C5 /* Release */, 606 | ); 607 | defaultConfigurationIsVisible = 0; 608 | defaultConfigurationName = Release; 609 | }; 610 | D5F72F031A8D4120006A0BE9 /* Build configuration list for PBXProject "Swift-PriorityQueue" */ = { 611 | isa = XCConfigurationList; 612 | buildConfigurations = ( 613 | D5F72F1D1A8D4120006A0BE9 /* Debug */, 614 | D5F72F1E1A8D4120006A0BE9 /* Release */, 615 | ); 616 | defaultConfigurationIsVisible = 0; 617 | defaultConfigurationName = Release; 618 | }; 619 | D5F72F3F1A8D423C006A0BE9 /* Build configuration list for PBXNativeTarget "PriorityQueue-iOS" */ = { 620 | isa = XCConfigurationList; 621 | buildConfigurations = ( 622 | D5F72F401A8D423C006A0BE9 /* Debug */, 623 | D5F72F411A8D423C006A0BE9 /* Release */, 624 | ); 625 | defaultConfigurationIsVisible = 0; 626 | defaultConfigurationName = Release; 627 | }; 628 | D5F72F421A8D423C006A0BE9 /* Build configuration list for PBXNativeTarget "PriorityQueue-iOSTests" */ = { 629 | isa = XCConfigurationList; 630 | buildConfigurations = ( 631 | D5F72F431A8D423C006A0BE9 /* Debug */, 632 | D5F72F441A8D423C006A0BE9 /* Release */, 633 | ); 634 | defaultConfigurationIsVisible = 0; 635 | defaultConfigurationName = Release; 636 | }; 637 | /* End XCConfigurationList section */ 638 | }; 639 | rootObject = D5F72F001A8D4120006A0BE9 /* Project object */; 640 | } 641 | --------------------------------------------------------------------------------