配列コントローラーにバインドされたテーブルを使用して、単純な Xcode プロジェクトをセットアップしました。アレイ コントローラが文字列属性を持つエンティティでいっぱいの場合、正常に動作します。ただし、属性をBOOLに変更し、BOOLに基づいて文字列「true」または「false」をテーブルに表示したいと考えています。
NSFormatter の次の 2 つのメソッドをオーバーライドしました。
-(NSString*) stringForObjectValue:(id)object {
//what is the object?
NSLog(@"object is: %@", object);
if(![object isKindOfClass: [ NSString class ] ] ) {
return nil;
}
//i'm tired....just output hello in the table!!
NSString *returnStr = [[NSString alloc] initWithFormat:@"hello"];
return returnStr;
}
-(BOOL)getObjectValue: (id*)object forString:string errorDescription:(NSString**)error {
if( object ) {
return YES;
}
return NO;
}
したがって、属性が文字列の場合、テーブルに「hello」が入力されますが、ブール値に切り替えると、テーブルに多くの空白が入力されます。
これが役立つかどうかはわかりませんが、オブジェクトを出力している行で、属性が文字列の場合は __NSCFString を出力し、属性をブール値に切り替えると「テキストセル」を出力します。これは私が理解していない別のものです。