0

ドキュメントを確認しましたが、CollectionViewを正常に実装できていません。これが私が持っているものです。

私のKVO/KVC準拠のNSMutableArray。

#import <Foundation/Foundation.h>
#import "ProjectModel.h"

@interface KVOMutableArray : NSMutableArray

@property NSMutableArray* projectModelArray;

- (id)init;
- (void)insertObject:(ProjectModel *)p inProjectModelArrayAtIndex:(NSUInteger)index;
- (void)removeObjectFromProjectModelArrayAtIndex:(NSUInteger)index;
- (void)setProjectModelArray:(NSMutableArray *)a;
- (NSArray*)projectModelArray;

@end

ProjectModel.hファイル:

#import <Foundation/Foundation.h>

@interface ProjectModel : NSObject {
    NSString *applicationName;
    NSString *projectPath;
    NSImage  *image;
}

@property(retain, readwrite) NSImage  *image;
@property(retain, readwrite) NSString *applicationName;
@property(retain, readwrite) NSString *projectPath;
@end

ProjectModel.m:

#import "ProjectModel.h"

@implementation ProjectModel

@synthesize image;
@synthesize projectPath;
@synthesize applicationName;

- (id)init {
    self = [super init];
    image = [NSImage imageNamed:@"xcodeproject.png"];
    return self;
}

@end

AppDelegate.h@property KVOMutableArray *projectsManager;ファイルと

projectsManager = [[KVOMutableArray alloc] init];
ProjectModel *pm1 = [[ProjectModel alloc] init];
pm1.projectPath = @"path here";
pm1.applicationName = @"Crittercism Example App";
[projectsManager addObject: pm1];

私のawakeFromNibメソッドで。次の例外が発生し、終了します。

[<NSCollectionViewItem 0x1001c2eb0> addObserver:<NSAutounbinderObservance 0x1001e2a20> forKeyPath:@"representedObject.applicationName" options:0x0 context:0x103111690] was sent to an object that is not KVC-compliant for the "representedObject" property.

何が問題なのかわからない。私がここにたくさん書いたことを知っているので、どんな助けでもありがたいです。

Nibファイル

編集 -問題は、representObject.imageまたはその他のプロパティが見つからないことのようです。どうすればこれを修正できますか?

ここに画像の説明を入力してください

4

2 に答える 2

1

私がこれらのメソッドを実装した後、それは機能しました(ドキュメントはそこで提案された4つのメソッドのみを必要とすることについて嘘をついていました):

#import <Foundation/Foundation.h>
#import "ProjectModel.h"

@interface KVOMutableArray : NSMutableArray {
    NSMutableArray *projectModelArray;
}
@property (readonly, copy) NSMutableArray* projectModelArray;

- (id)init;
- (void)insertObject:(ProjectModel *)p;
- (void)insertObject:(id)p inProjectModelArrayAtIndex:(NSUInteger )index;
- (void)removeObjectFromProjectModelArrayAtIndex:(NSUInteger)index;
- (void)setProjectModelArray:(NSMutableArray *)array;
- (NSUInteger)countOfProjectModelArray;
- (id)objectInProjectModelArrayAtIndex:(NSUInteger)index;
- (void)insertProjectModelArray:(NSArray *)array atIndexes:(NSIndexSet *) indexes;
- (NSArray *)projectModelArrayAtIndexes:(NSIndexSet *)indexes;
- (NSArray*)projectModelArray;
- (void)removeProjectModelArrayAtIndexes:(NSIndexSet *)indexes;
- (NSUInteger)count;
- (void)insertObject:(id)object atIndex:(NSUInteger)index;

@end
于 2013-01-23T23:20:30.690 に答える
0

アレイコントローラのモードClassとクラス名をに設定しますProjectModel

于 2013-01-23T06:30:37.370 に答える