Tôi có chế độ xem được sử dụng trong mỗi mục trong Bộ sưu tập của tôi. Tôi có một IBOutlet đến CollectionViewItem từ quan điểm của tôi và tôi đã kết nối trong Interface Builder. Tôi muốn truy cập một giá trị từ tệp representObject (là một đối tượng Dữ liệu cốt lõi) trong mã xem của tôi. Dưới đây là một ví dụ về những gì tôi đang cố gắng để làm - truy cập vào một giá trị chuỗi của representedObject:Làm thế nào để lấy được đại diệnObject từ một khung nhìn trong một NSCollectionViewItem?
Trong file .h:
IBOutlet NSCollectionViewItem *item; // Connected in IB
Trong tập tin .m
NSString *seq = [[item representedObject] valueForKey:@"seq"];
NSLog(@"Seq: %@", seq); // returns Seq: (null)
Tôi biết rằng seq được điền bởi vì tôi đã gắn nó với một nhãn trong khung nhìn CollectionViewItem trong IB bằng cách sử dụng đường dẫn khóa representObject.seq và nó hoạt động.
Bất kỳ ý tưởng nào tại sao khi tôi cố truy cập giá trị cho seq trong mã cho chế độ xem, nó trả về giá trị rỗng?
Cảm ơn bạn đã thực hiện điều đó. – Austin
Tôi đang bối rối bởi câu trả lời này. Đầu tiên, trạng thái @kperryua "Mẫu điển hình để truy cập cá thể NSCollectionViewItem là liên kết với mẫu thử nghiệm. Bạn đề cập đến việc bạn đã làm điều này và nó hoạt động." Nhưng câu hỏi của Austin chỉ đề cập đến việc sử dụng đường dẫn khóa "representObject.seq" và thực sự rất khó để xem cách một người sẽ liên kết itemPrototype của collectionView với khung nhìn collectionViewItem. Tôi nói điều đó là không thể, nhưng tôi rất vui khi được chứng minh là sai. Thứ hai, tài liệu của Apple cho copyWithZone của NSObject: tuyên bố rõ ràng "Bạn không nên ghi đè phương thức này". –
Ghi đè copyWithZone: khá an toàn miễn là cấp bậc allocWithZone: được gọi bên trong nó. Đã không kiểm tra để xem nếu họ thực sự nói không làm điều đó, nhưng bằng cách nào đó tôi nghĩ rằng bạn có thể có nó nhầm lẫn với allocWithZone: hoặc một số như vậy. – ctpenrose