속성이있는 클래스를 작성했습니다.이 클래스의 인스턴스를 변경 가능한 배열에 추가하고 그 후에 인스턴스의 num 속성을 설정하려고합니다. 하지만 올바른 구문을 모른다. 이 작업을 수행하는 올바른 구문 또는 방법을 알려주십시오.NSArray 안에 개체의 속성을 설정하는 방법
@interface ClassA : NSObject
@property int num;
-(void) method;
+(id) getClassAObj:(int)number;
@end
--------------------------------
#import "ClassA.h"
@implementation ClassA
@synthesize num;
-(void) method{
NSLog(@"ClassA method Called");
}
+(id) getClassAObj:(int)number {
ClassA *obj = [[ClassA alloc] init];
obj.num = number;
return obj;
}
@end
-----------------------
이제 주에 나는 수동으로 납입 속성을 설정하려는하지만 난 내가 구문 잘못된 생각이나 할 수있다 그렇지 않으면 잘 모릅니다 올바른 구문
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
NSMutableArray *array = [NSMutableArray arrayWithObjects:
[ClassA getClassAObj:9],
[ClassA getClassAObj:4], nil];
NSLog(@"%i",[[array objectAtIndex:0] num]);
NSLog(@"%i",[array[1] num]);
//array[1].num = 3; <--- Help needed here
//[[array[1]]num 3]; <--- this is also not correct syntax
NSLog(@"%i",[array[1] num]);
}
return 0;
}
무엇인지 잘 모릅니다 배열
귀하의 코드는 일부 경우 실패합니다 그 인덱스의 객체가 ClassA 유형이 아닌 이유는 대답을 완료하기 위해 유효성 검사를 수행해야합니다.) – danypata
객체를 id로 선언하고 메시지를 보내기 전에 객체가 setNum 메소드에 응답하는지 확인하는 것이 좋습니다. – Abizern
@danypata : 배열의 다른 클래스를 기대하지 않는다면 유효성 검사가 실패하면 "글쎄, 우리는 괴롭혔어요. 고칠 필요가 있습니다."라고 말하는 것보다 훨씬 더 적절한 것은 없습니다. 어쨌든 잘못된 메시지를 보내면 이미 어떤 일을 할 것인가. – Chuck