2009-08-24 6 views
0

코어 데이터 영역에서 초기 단계를 움직이고 있습니다. (또한 iPhone 개발에 익숙합니다) 설명 할 수없는 동작을 발견했습니다. 내가 개체 인스턴스를 생성하고 값을 할당하려고하면,코어 데이터 엔티티의 NSString 속성에 액세스하기

@interface MyObject : NSManagedObject { 

} 

@property (nonatomic, retain) NSString *contentFile; 
@property (nonatomic, retain) NSString *contentPath; 
@property (nonatomic, retain) NSDate *creationDate; 
@property (nonatomic, retain) NSString *name; 

@end 

지금 : 나는 NSManagedObject의 서브 클래스를 선언하고 몇 가지 속성, 타입이 NSString *의 그 중 일부를 정의 MyObject.h은 같은 것입니다 이름 속성에 속성의 내용을 인쇄하려고 할 때 엉망인 것 같습니다. 전체 코어 데이터 스택이 정의 된 AppDelegate에,에서 , 나는 쓰기 :

I 출력 콘솔에서 무엇을 얻을
MyObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:@"MyObject"             
           inManagedObjectContext:self.managedObjectContext]; 

newObject.name = @"Testing"; 
NSLog([NSString stringWithFormat:@"Name: %s\n", newObject.name]); 

2009-08-24 20:03:55.176 MyApp[15727:20b] Name: ‡}00» 

내가 뭔가를하고 있어요 만약 내가 이해할 수없는 것입니다 잘못했거나 뭔가 잊어 버린 경우. 누구든지 도와 줄 수 있니?

NSLog([NSString stringWithFormat:@"Name: %@\n", newObject.name]); 

%s는 C - 문자열 (char*들)을 위해 사용됩니다 NSString는 목표 - C 객체이기 때문에

답변

7

당신은, stringWithFormat:%@ 형식 지정자를 사용해야합니다. 자세한 내용은 String Format Specifiers을 참조하십시오.

+0

감사합니다. 바보 같은 것이 었음을 알고있었습니다. – Eugenio

1

Objective-C 개체의 올바른 형식 지정자는 %s이 아니라 %@입니다.

+0

도움을 주셔서 감사합니다. – Eugenio

0

% s을 (를) 사용해야합니다. % s는 char * 문자열을 나타냅니다. 당신은 objective-c 객체를 전달하고 있습니다.

+0

도움을 주셔서 감사합니다. – Eugenio

관련 문제