2013-09-05 1 views
0

전 Objective C 프로그래밍에 완전히 익숙하며 Mac 개발자 라이브러리에서 찾을 수있는 기능을 어떻게 구현하는지 확인해야합니다. 나는 맥 개발자 라이브러리에서이 코드를 발견 예를 들어 :Mac 개발자 라이브러리에있는 메소드 구현 방법

- (BOOL)containsObject:(id)anObject 

내가이 방법을 구현하는 데 필요한 단계인가?

  1. .H 파일에

    -(BOOL)containsObject:(id)anObject;

는 다음하는 .m 파일에 다음과 같이 그것을 구현 추가;

- (BOOL)containsObject:(id)anObject 
{ 
    //What do I place here to search my array with the objects? 
    return YES; 
} 

사람이 내가 숫자의 배열을 검색하고이 방법을 사용하는 방법을 예를 들어 나를 도와 드릴까요?

NSArray *first; 

first = [NSArray arrayWithObjects:1,2,3,4,5, nil]; 
+0

당신이 볼 수있는 번호 ("1, 2, 3, 4, 5")입니다 당신이에 저장할 수 없도록 원시 C 타입이 아닌 목표 - C의 객체 정수, NSArray. 배열에 NSNumber 객체를 저장할 수 있습니다. –

+0

오케이. 배열에 다음과 같은 숫자가 포함되어 있는지 확인하려면 어떻게해야합니까? int first [9] = {0,4,3,7,6,8,4,5,6}; –

+0

나는이 질문을 명확하게하려고 노력했다. 이게 더 좋은가요? –

답변

1

는 "구현"을 의미합니까 - 쓰기 같이 당신의 자신의 버전을 - 또는 "사용"? 당신은 전자와 함께 시작하고 후자로 끝나는 것 ...

어떻게 사용합니까?

NSArray *first = [NSArray arrayWithObjects:@1, @2, @3, @4,@ 5, nil]; 

@1 등이 NSNumber객체를 제작하는 속기입니다 - 당신은 단지 NSArray에 객체 참조와 원시하지 값을 넣을 수 있습니다 : 음 수정하여 예를 복용. 속기 효과적으로하기 containsObject:을 사용하는 등 [NSNumber numberWithInt:1]

으로 확장된다 : 배열 그렇지 않으면 (42)를 나타내는 NSNumberNO 포함 된 경우

BOOL containsTheAnswerToEverything = [first containsObject:@42]; 

이것은 YESBOOL 변수를 설정한다.

어떻게 구현합니까? 배열의 각 요소를 루프에서 찾고자하는 오브젝트와 C에서 사용하는 동일한 알고리즘을 비교합니다 (알고있는 것 같습니다).

클래스를 정의하는 방법을 묻는다면 Objective-C를 읽어야하지만 포인트 2는 올바른 개요입니다.

HTH

1

첫 번째 질문에 대해, 당신은 그냥 작업을 수행 할 수 있습니다

내 배열입니다. 나는있는 NSArray를 사용하거나 사용하여로드와 정말 익숙하지 오전, 두 번째 질문에 대해서는

YourClassName.m 

#import "YourClassName.h" 

@implementation YourClassName 

- (BOOL)containsObject:(id)anObject 
{ 
    //Insert function body here 
} 

@end 

...

YourClassName.h 

#import <Foundation/Foundation.h> 

@interface YourClassName : Subclass //replace subclass with something like NSObject or whatever you need 
{ 

} 

- (BOOL)containsObject:(id)anObject; 

@end 

를 실행 한 다음 예는 더 나은 시각적 이해이 될 것입니다 제공합니다 그 이상한 기능. 내 충고는 (id) anObject 대신 (NSArray) anObject를 사용하여 함수에 배열을 직접로드하고 거기에 검색 매개 변수를 만들 수 있습니다. containsObject의 관점에서 당신이 찾고있는 객체가 정확히 무엇인지 모르겠습니다. 번호가 포함되어 있는지 확인 하시겠습니까? 값에 배열이 포함되어 있으면? 그것을 조금을 지정하고 나는 더 나은 대답을 발굴 할 수 있습니다 당신

편집

: 그것은 나에게 발생

당신은 아마 당신이로 보는 배열의 내부 번호를 찾고 있습니다 Objective-C보다 새로운 원하는 것을 성취하기 위해 몇 가지 옵션이 있습니다. 둘 다 당신의 기능 변화가 필요합니다. 첫 번째는 바로 여기에 기능을 변경하는 것 : YourClassName.h에서

- (BOOL)containsObject:(int)object fromArray:(int*)array length:(int)length; 

. 이제 매개 변수를 다른 데이터 유형으로 언제든지 변경할 수 있지만 정수에서는이 매개 변수가 작동합니다. 길이 매개 변수 없이도이 작업을 수행 할 수 있지만 코드를 저장하는 것으로 나타납니다 (개인 취향). 그리고하는 .m 파일 :

- (BOOL)containsObject;(int)object fromArray:(int*)array length:(int)length 
{ 
    for(int i = 0; i <= length; i++) 
    { 
     if (array[i] == object) 
     { 
      return YES; 
     } 
    } 
    return NO; 
} 

초은 길이 옵션과 좀 더 코드없이 것

관련 문제