 	}
 
 	override internal var hash: Int {
-		let string = self.characteristic.UUID.UUIDString
-		return string.hashValue
+		return characteristic.UUID.UUIDString.hashValue
 	}
 
 	override internal func isEqual(object: AnyObject?) -> Bool {

			failure?(error)
			return
		}

		let req = SubscribeRequest(characteristic: characteristic, success: success, failure: failure, update: update)
		dispatch_async(self.requestQ, { () -> Void in
			self.subscribeRequests.insert(req)
		})

		dispatch_async(self.operationQ, { () -> Void in
			self.core.setNotifyValue(true, forCharacteristic: characteristic)
		})

		dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(req.timeoutPeriod * Double(NSEC_PER_SEC))), self.operationQ) { () -> Void in
			if req.timedOut {
				dispatch_async(dispatch_get_main_queue(), { () -> Void in
					let error = NSError(domain: "connect operation timed out", code: Cusp.Error.TimedOut.rawValue, userInfo: nil)
					failure?(error)
				})
				dispatch_async(self.requestQ, { () -> Void in
					self.subscribeRequests.remove(req)
				})

	订阅指定从设备的指定特征的数值变化

	- parameter characteristic: a CBCharacteristic object of which the value update to be subscribed. 待订阅数值更新的特征.
	- parameter success:        a closure called when subscription succeed. 订阅成功时执行的闭包.
	- parameter failure:        a closure called when subscription failed. 订阅失败时执行的闭包.
	- parameter update:         a closure called when characteristic's value updated. 数值更新时执行的闭包.
