2011-08-25 4 views
2

내 objective-c 프로그램에서 다음 줄을 사용하여 속성을 선언하고 있습니다.add (Propertyname) 메소드의 출처는 어디입니까?

@property (retain) int Money; 

내 구현 파일에 syntesize.

이제 프로그램에서 금액을 추가하기 위해 구현시 addMoney 메서드를 만들고 싶습니다. 내가 Xcode가 항상이 이름을 가진 메소드를 오버라이드 할 수 있다고 말하면서 addMoney를 타이핑했다. 다음 서명이 있습니다.

-(void)addMoney:(NSSet *)objects; 

그들이 온다에서 누가 그들을 호출

-(void)addMoneyObject:(object-type *)object 

? 어떻게 나 혼자서 사용할 수 있을까? 이것을 사용할 때 무엇을해야합니까?

+1

클래스에서 상속받은 클래스는 무엇입니까? Xcode의 모든 자동 완성 제안이 실제로 귀하에게 합법적 인 선택자를 제공하는 것은 아닙니다. – JeremyP

+0

그것은 NSObject에서 파생됩니다 – Bernsen

답변

0

이 메서드는 실제로 존재하지 않습니다. Xcode는 몇 가지 일반적인 명명 패턴을 완성함으로써 사용자를 돕고 있습니다.

@class Thing; 
@property (nonatomic, retain) NSMutableSet *things; 

- (void)addThings:(NSSet *)someThings; 
- (void)addThing:(Thing *)aThing; 

엑스 코드는 그냥 좀 더 쉽게 그를 입력 할 수 있도록 노력하고있다 : 그것은이 같은 상황이 다소 일반적입니다. 그러나 당신이 그들을 창조하지 않으면 방법은 실제로 존재하지 않습니다.

사이드 노트 : retainint이 아니므로 실제 코드가 아닙니다. 괜찮아. 속성이 소문자로 시작하는지 확인하십시오 (money). 그것은 개인 스타일이 아닙니다. ObjC는 여러 가지 이유로 키 - 값 코딩을 사용합니다. 그것은 어떤 방식으로 이름이 붙여 지거나 작동하지 않을 것을 요구합니다.

+0

실제 코드에서 왔지만 입력했지만 복사하지 않았습니다. 그래서 나는 적절한 수정 자 @. @에 대해 실패했다. 그것은 C#에서 더 쉽습니다. - (void) addMoney : 문제없이 (double) 값을 사용할 수 있습니까? 유형도 잘못되었습니다./ – Bernsen

+0

예. 비록 당신은 돈을 위해'double'을 사용해서는 안됩니다. NSDecimalNumber를 원한다면 반올림 오류가 발생합니다. –

+0

그냥 게임에서 돈을 위해. 나는 어쨌든 그것을 바꿀 수 있다고 생각합니다. 나는 NSNumber를 사용할 때 몇 가지 문제가 있었지만, 많은 것들을 재 작성한 후에 나는 이전의 문제를 해결하기 위해 새로운 시도를 할 수 있었다. xD – Bernsen

0

Money는 ManagedObject (Core Data 개체)입니까? 그렇다면이 방법이 만들어 질 수 있습니다. 합성 된 속성은 setter 및 getter를 제공해야하지만 그 방법은 다음과 같습니다. - (void) setMoney : (int) money 및 - (int) Money

+0

나는 setter와 getter가 다른 이름을 가진 것을 알고 있기 때문에 add 메서드로 혼란스러워했습니다. – Bernsen

관련 문제