2011-11-22 7 views
29

Đã có cài đặt MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS trên Xcode 3 nhưng tôi không thể tìm thấy nó trong Xcode 4.2 và cố gắng đặt cài đặt này làm cài đặt xây dựng do người dùng xác định không có hiệu lực.Làm thế nào để vô hiệu hóa cảnh báo mối quan hệ nghịch đảo cho CoreData trong Xcode 4.2?

Tôi biết tại sao tôi nên sử dụng mối quan hệ nghịch đảo nhưng tôi không muốn nó vì nhiều lý do khác nhau.

+0

Tôi biết bạn nói rằng bạn biết lý do tại sao bạn nên sử dụng mối quan hệ nghịch đảo nhưng tôi chỉ kiểm tra. Bạn biết rằng nó đơn giản hóa cho CoreData nếu có mối quan hệ ngược lại và không có nó có thể làm giảm hiệu suất, ví dụ: khi tầng tầng bị xóa? Bởi vì nó được khuyến khích để luôn luôn có một mối quan hệ nghịch đảo, ngay cả khi bạn không bao giờ sử dụng nó. Tất nhiên bạn có thể có một số trường hợp sử dụng đặc biệt mà nghịch đảo thực sự là xấu cho bạn, trong trường hợp một mối quan hệ một chiều _may_ là lựa chọn tốt hơn. –

+0

@David Rönnqvist Tôi có một EntityA có mối quan hệ: allItems và mostRecentlyUsed. allItems là một to-many và mostRecentlyUsed là một và cả hai điểm cho EntityItem. Tôi không thể thấy bất kỳ lý do gì để làm cho EntityItem có hai mối quan hệ nghịch đảo cả hai điểm đến cùng một EntityA. –

+0

Tôi đồng ý rằng không có lý do gì mà chúng tôi "nên" có quan hệ nghịch đảo. Tôi có nghĩa là, kể từ khi nó là bắt buộc đối với mỗi "getChild" mối quan hệ để có một tương ứng "getParent" trong một progam hướng đối tượng? Và btw, bạn đã tìm thấy một giải pháp chưa- Tôi cũng muốn nó – Rhubarb

Trả lời

2

Cài đặt vẫn ở đó trong Xcode 4. Ít nhất nó là dành cho tôi khi tôi tạo một dự án mới trong Xcode 4.2 sử dụng Dữ liệu lõi. Cài đặt MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS nằm trong bộ sưu tập Cảnh báo Mô hình Phiên bản Mô hình Dữ liệu (MOMC), nằm ở phía dưới cùng của danh sách cài đặt xây dựng.

+0

Tôi không thể tìm thấy bất kỳ thứ gì như bộ sưu tập Cảnh báo Phiên bản Mô hình Dữ liệu (MOMC), tìm kiếm 'momc' trong cài đặt xây dựng cho tôi không có gì. Đây có phải là vì tôi không tạo dự án của mình bằng mẫu Dữ liệu cốt lõi không? Tôi đã sử dụng mẫu cocos2d để tạo dự án. –

+0

Tôi chưa sử dụng cocos2d, nhưng thực tế bạn không sử dụng mẫu dự án Core Data có thể là nguyên nhân khiến bạn không có bộ sưu tập Cảnh báo biên dịch phiên bản mô hình dữ liệu. Một điều khác cần kiểm tra là nút Cơ bản và Tất cả bên trên danh sách cài đặt bản dựng. Đảm bảo bạn nhấp vào nút Tất cả. –

+1

Tôi đã nhấp vào nút Tất cả và vẫn không thể tìm thấy và tôi tạo một dự án mới sử dụng mẫu Dữ liệu cốt lõi và nó ở đó. Tôi đoán các cài đặt xây dựng này sẽ chỉ xuất hiện nếu tôi tạo dự án của mình bằng cách sử dụng mẫu Dữ liệu cốt lõi. Nhưng cần phải có một vài cách để kích hoạt các cài đặt này mà không cần tạo dự án bằng cách sử dụng mẫu Dữ liệu cốt lõi. –

35

Sử dụng XCode 4.3:

Tìm theo cách của bạn để xây dựng Cài đặt

  1. Chọn nút dự án (nút trên cùng) trong dự án Navigator

  2. Chọn dự án của bạn dưới tiêu

  3. Chọn tab "Cài đặt xây dựng"

Tìm và thiết lập các MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS thiết

  1. Cuộn tất cả các con đường xuống các thiết lập xây dựng gần phía dưới và tìm đến phần đặt tên là "Data Model Version Compiler (MOMC) Cảnh báo"

  2. Các mục đầu tiên là "MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS" và nó mặc định là NO

  3. Thay đổi nó để YES

Tạo lại và cảnh báo sẽ biến mất.

34

Trong XCode , và , bạn vẫn có thể đặt biến.

  1. Navigate to Build Cài đặt

    A. Chọn dự án của bạn trên thanh bên trái dưới Project Navigator.

    B. Chọn tab "Cài đặt xây dựng".

  2. Tìm và thiết MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS

    A. Chọn 'Tất cả' trong góc trên bên trái của màn hình chính.

    B. Tìm kiếm MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS bằng cách dán phím vào thanh tìm kiếm.

    C. Thay đổi giá trị thành CÓ.

Tạo lại và cảnh báo biến mất.

**** EDIT ****

Cảm ơn @RajTandel cho nhận xét. Nếu bạn vẫn thấy cảnh báo, hãy khởi động lại Xcode và các cảnh báo sẽ biến mất.

+1

Các bước này vẫn còn hiệu lực trong phiên bản Xcode 7 beta. –

+0

@MattLong cảm ơn! Tôi sẽ cập nhật câu trả lời – mikeho

+0

@mikeho các bước của bạn là chính xác. Cảm ơn, Nhưng trong Xcode 7.2 cảnh báo vẫn tồn tại ngay cả khi tôi làm sạch và xây dựng nó. vì vậy tôi phải khởi động lại Xcode và tất cả các cảnh báo đã biến mất. –