/*
숫자 객체
기본 데이터형 ( int, long...) 이것들은 객체가 아니다
그러므로 메시지 같은 것을 보내는 일은 불가능하다. 이러한 형의 값을 NSArray에 저장
위해서는 객체여야 한다..
그러기 위해 기본 숫자 데이터 형을 저장하려면 NSNumber 클레스를 사용하여 이 데이터
형들에게서 객체를 생성 할 수 있다.
<NSArray>
1. 객체만을 추가할 수 있다.
2. nil을 넣을 수 없다. nil은 배열의 끝을 알린다.
3. 변경이 불가능 하다.
자주 사용되는 NSArray 메서드
+(id) arrayWithObjects: obj1, obj2, .. nil
=> obj1, obj2를 가지고 있는 배열을 생성한다.
-(BOOL) containsObject: obj
=> 배열에 obj가 있는지 확인한다(isEqual:메서드를 사용한다.)
-(NSUInteger) count
=> 배열에 담긴 객체의 개수를 반환한다.
-(NSUInteger) indexOfObject : obj
=> obj를 담은첫번째 객체의 인덱스 번호를 반환한다.
-(id) objectAtIndex : i
=> i번째 객체를 반환한다
-(void) makeObjectsPerform Selector: (SEL) selector
=> selector가 가리키는 메시지를 배열에 있는 모든 객체에게 보낸다.
-(NSArray*) sortedArrayUsing Selector:(SEL) selector
=> selector로 지정한 비교 메서드를 이용해 배열을 정렬한다.
-(BOOL) writeToFile: path atomically:(BOOL) flag
=> 지정한 파일로 배열을 쓴다. flag가 YES면 임시 파일을 먼저 생성한다.
-(id) initWithArray:(NSArray*) array
=> array 배열로 초기화 한다.
-(id) initWithObjects : (id)firstObj, ...
=> firstObj,.. 를 받아 초기화 한다.
-(id) lastObject
=> 마지막 객체를 반환 한다.
-(BOOL) isEqualToArray: (NSArray *)otherArray
=> (NSArray *)otherArray 와 비교하여 일치여부를 반환.
-(NSSting*) componentsJoinedByString:(NSString *)separator
=> NSSting일 경우 각 요소 사이에 separator 를 붙여서 NSString 형으로 리턴한다.
*/
#import <Foundation/Foundation.h>
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSValue.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSNumber *myNumber, *myfloatNumber, *myIntNumber;
NSInteger myInt;
myIntNumber = [NSNumber numberWithInteger : 100];
myInt = [myIntNumber integerValue];
NSLog(@"%li", (long) myInt);
myNumber = [NSNumber numberWithLong: 0xabcdef];
NSLog(@"%lx", [myNumber longValue]);
myNumber = [NSNumber numberWithChar:'X'];
NSLog(@"%c", [myNumber charValue]);
myfloatNumber = [NSNumber numberWithFloat:100.02];
NSLog(@"%g", [myfloatNumber floatValue]);
myNumber = [NSNumber numberWithDouble:12345e+15];
NSLog(@"%lg", [myNumber doubleValue]);
//잘못된 접근.
// NSLog("@%i", [myNumber integerValue]);
if ([myIntNumber isEqualToNumber: myfloatNumber] == YES) {
NSLog(@"Number are equal");
}
else {
NSLog(@"Numbers are not equal");
}
if ([myIntNumber compare: myNumber] == NSOrderedAscending) {
NSLog(@"First number is less than second");
}
int a = 5;
int b = 6;
int c = 7;
//NSArray에 담기 위한 객체 생성.
NSNumber *nNum1, *nNum2, *nNum3;
nNum1 = [NSNumber numberWithInteger: a];
nNum2 = [NSNumber numberWithInteger: b];
nNum3 = [NSNumber numberWithInteger: c];
NSArray * arr = [NSArray arrayWithObjects: nNum1, nNum2, nNum3, nil];
int i = 0;
for (; i < [arr count]; i++)
{
NSLog(@"%li", [[arr objectAtIndex: i] integerValue]);
}
[pool drain];
return 0;
}
'프로그래밍 > Objective-C' 카테고리의 다른 글
| Objective-C start5 (0) | 2010/06/07 |
|---|---|
| Objective-C start4 (0) | 2010/05/25 |
| Objective-C start3 (0) | 2010/05/23 |
| Objective-C start2 (0) | 2010/05/18 |
| Objective-C start1 (0) | 2010/05/16 |

