2010-06-19 35 views

Trả lời

6

Câu hỏi hay ... có vẻ như đây không phải là tài liệu hay.

Dưới đây là những gì tôi tìm thấy:

Cập nhật:

Với việc bổ sung tiện ích ứng dụng, Apple đã bao gồm các ví dụ khác subquery kể từ khi họ được yêu cầu cho logic hợp phức tạp.

  • Trong phần String Comparisons của Predicate Programming Guide, bây giờ nó bao gồm một ví dụ về làm thế nào để phù hợp với một nhiễm trùng đường niệu:

    SUBQUERY (
        extensionItems, 
        $extensionItem, 
        SUBQUERY (
         $extensionItem.attachments, 
         $attachment, 
         ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.adobe.pdf" 
        )[email protected] == [email protected] 
    )[email protected] == 1 
    
  • Bạn có thể tìm thấy một ví dụ phức tạp hơn trong Hướng dẫn Lập trình ứng dụng mở rộng> Ứng dụng Essentials extension>Handling Common Scenarios section:

    SUBQUERY (
        extensionItems, 
        $extensionItem, 
        SUBQUERY (
         $extensionItem.attachments, 
         $attachment, 
         ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "org.appextension.action-one" || 
         ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "org.appextension.action-two" 
        )[email protected] == [email protected] 
    )[email protected] == 1 
    
  • Ngoài ra còn có một NSPredicate Cheatsheet mà d iscusses SUBQUERY ngoài một số tính năng NSPredicate khác.


Về cơ bản mỗi SUBQUERY tương đương với filter trong Swift. Và ANY tương đương với contains.

Vì vậy, dùng ví dụ này một lần nữa:

SUBQUERY (
    extensionItems, 
    $extensionItem, 
    SUBQUERY (
     $extensionItem.attachments, 
     $attachment, 
     ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.adobe.pdf" 
    )[email protected] == [email protected] 
)[email protected] == 1 

Nó sẽ là tương tự như sau trong Swift:

extensionItems.filter { 
    $0.attachments.filter { 
    $0.registeredTypeIdentifiers.contains { 
     $0.utiConformsTo("com.adobe.pdf") 
    } 
    }.count == $0.attachments.count 
}.count == 1 
+0

Trên thực tế có vẻ như rằng tính năng này là hoàn toàn không có giấy tờ. Thật là đáng thương - dường như rất tuyệt. Tôi chỉ có thể đoán: Họ sợ rằng mọi người sử dụng quá mức này, vì nó có vẻ là thứ gì đó thực sự, thực sự nặng nề. – dontWatchMyProfile

+1

Hoặc không đủ người đã gửi một radar với táo để làm cho nó đủ quan trọng để tài liệu. Nếu bạn muốn xem tài liệu về tính năng này, hãy tạo một radar. –

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