Trong vùng đất khác trường hợp ai đó ở đây, như tôi, bằng cách sử dụng tìm kiếm của Google:
Tôi khẳng định những gì middaparka nói ở trên sau khi nâng cấp iOS của điện thoại của tôi, khi ứng dụng âm nhạc của tôi cố gắng sử dụng persistentIDs từ trước khi nâng cấp. Các ID đã thay đổi, và tôi đã kết thúc (vô tình) nghe nhiều bài hát từ thư viện của tôi mà tôi không thường nghe ...
Vì vậy, tôi đã lấy lời khuyên của middaparka và xây dựng một persistentKey bằng cách độc quyền hoặc băm từ băm title, artistName, albumTitle và thời lượng.Việc xây dựng persistentKey trong khi khởi tạo Cơ sở dữ liệu lõi sẽ tiết kiệm thời gian sau đó, bằng cách tránh so sánh nhiều chuỗi khi tìm nạp các mục trong "mã hoạt động bình thường".
Chiến lược persistentKey hoạt động tốt cho các bài hát. Tuy nhiên, khi tôi thực hiện một băm cho album từ tiêu đề, nghệ sĩ và releaseYear, tôi đã kết thúc với một va chạm.
Tôi có hai album tự tiêu đề của các nghệ sĩ khác nhau phát hành năm 1976. Khi băm cho tên album và nghệ sĩ được độc quyền, họ đã hủy nhau. Tôi đã kết thúc bằng cách sử dụng băm cho thời lượng thay vì của nghệ sĩ, và điều đó làm việc.
Tôi có thể kết thúc tinh chỉnh thuật toán để tạo persistentKeys sau ...
Nguồn
2015-07-29 10:52:16
Tôi đã bỏ lỡ phần tài liệu này. Có vẻ như tôi sẽ phải tìm kiếm một cách khác ... – miho
Trong khi hơi khó khăn, bạn có thể phải xây dựng một cái gì đó phù hợp thông qua dữ liệu valueForProperty có sẵn cho mỗi MPMediaEntity. (ví dụ: MPMediaItemPropertyTitle, MPMediaItemPropertyAlbumTitle, MPMediaItemPropertyArtist, v.v.) –