2015-01-30 24 views
8

tôi thêm mẫu như thế này:Xóa thêm mẫu trong App Sức khỏe

var store:HKHealthStore? 
date = NSDate() 
let type = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietaryVitaminA) 
quantity = HKQuantity(unit: HKUnit.gramUnitWithMetricPrefix(.Micro), doubleValue: 100) 
let sample = HKQuantitySample(type: type, quantity: quantity, startDate: date, endDate: date) 
store.saveObject(sample, withCompletion: { (success, error) -> Void in 
      if(error != nil) { 
       println("Error saving sample: \(error.localizedDescription)") 
      }else{ 
       println("Sample saved successfully!") 
      } 
     }) 

Và khi tôi muốn xóa mẫu này tôi thực hiện:

store.deleteObject(sample, withCompletion: {(success, error) -> Void in 
    if(error != nil) { 
     println("Error deleting sample: \(error.localizedDescription)") 
    }else{ 
     println("Sample deleted successfully!") 
    } 
}) 

Và nó trả tôi: Lỗi xóa mẫu: đối tượng không tìm thấy Mỗi lần tôi sử dụng cùng một 'ngày' cho startDate và endDate. Tôi đã tryed với let sample = HKQuantitySample(type: type, quantity: quantity, startDate: date, endDate: date, metadata: metadata) nơi siêu dữ liệu là let metadata = [HKMetadataKeyExternalUUID:"\(Int64(date.timeIntervalSince1970))"], nhưng cũng không thành công ...

Trả lời

2

Không thể xóa dữ liệu sức khỏe được nhập vào bởi ApplicationA trong ApplicationB, trừ ứng dụng sức khỏe của Apple.

Theo tài liệu của Apple, có thể xóa dữ liệu sức khỏe chỉ được tạo bởi ứng dụng tương ứng. Mặc dù, người dùng cho phép ghi, không thể xóa một số dữ liệu ứng dụng y tế khác khỏi ứng dụng của bạn, nhưng chỉ có thể từ ứng dụng Sức khỏe của Apple.

Từ the documentation:

LƯU Ý

Mặc dù ứng dụng của bạn có thể quản lý chỉ các đối tượng nó tạo ra và lưu, người dùng có thể xóa bất kỳ dữ liệu mà họ muốn sử dụng ứng dụng Y tế.

1

Tôi thực sự nhận được sự trợ giúp từ Apple với vấn đề chính xác này, nhưng tôi chưa giải quyết được. Bạn đang mã hóa chính xác như tôi đã làm, nhưng họ nói với tôi vấn đề là chúng ta đang tạo ra một mẫu mới và sau đó cố gắng xóa nó ngay lập tức. Mẫu không tồn tại, vì vậy nó trả về lỗi không tìm thấy mục.

Điều cần làm (theo lý thuyết) là chạy HKSampleQuery và sau đó thực hiện thao tác xóa với đối tượng được trả về từ đó. Đối tượng đó đã tồn tại trong HealthKit và có thể bị xóa.

Hy vọng điều đó sẽ hữu ích!

EDIT: Đã giải quyết nó ... Tôi nhận thấy rằng dấu ngày/giờ của tôi quá nghiêm ngặt. Tôi đã sửa đổi startDate/endDate của mình để trả về định dạng MM/DD/YYYY và các mẫu đã được xóa đúng cách. Hy vọng rằng sẽ giúp bạn!

Các vấn đề liên quan