안녕하세요 저는 Objective-C
프로그래밍의 초보자입니다. 오늘 나는 프로그램을 쓰고 있었고, 나는 그것이 행동하는 방식과 꽤 혼란 스럽다. 내가 getStr
그것은 나에게 오류를 제공 합성 접근을 사용하여 STR 값을 인쇄하려고하면NSString 유형의 인스턴스 변수에 대해 합성 된 getter가 작동하지 않습니다.
#import <Foundation/Foundation.h>
@interface MyClass:NSObject
{
NSString * str;
}
@property NSString * str;
@end;
@implementation MyClass
@synthesize str;
@end
int main()
{ NSAutoreleasePool * pool = [[NSAutoreleasePool alloc]init];
MyClass * obj = [[MyClass alloc]init];
[obj setStr: @"hello"];
/* the following lines of code will give error if not commented but why it is
resulting in error ?????
NSLog(@"Str = %@",[obj getStr]); // **gives error if not commented**
**or**
NSString * temp;
temp = [obj getStr]; // gives error
NSLog(@"%@",temp);
*/
NSString * temp;
temp = obj.str;
NSLog(@"%@",temp); // works just fine
[pool drain];
return 0;
}
주요 기능에서 다음은 프로그램입니다. 왜 그렇게? NSString
에 합성 된 getter
을 사용하거나 올바른 방법으로 getter
을 사용하지 않습니까? 그러나 여전히 합성 된 setter
[obj setStr]
은 NSString
유형의 값을 설정합니다. 스택 오버 플로우에 대한 이런 종류의 질문에 대한 답을 보았지만 실제로 제공되는 답변을 이해할 수 없으므로이를 간단한 방식으로 설명해주십시오. 많은 감사합니다.
TNX에 많이 있습니다. 속성 xyz에 대한 합성 된 getter의 이름이 속성의 이름과 같은지는 알지 못합니다. Thnx. – iamyogish