나는 SOAP
서비스를 가지고 있으며 SudzC.com에 클래스와 함수를 생성했습니다.NSMutable 배열 : 가변 범위 변경 후 상태
그래서 내가 생성 한 비누 함수를 사용하고 있는데, NSMutableArray
(내 사용자 지정 클래스에서 상속 한 개체 포함)을 반환합니다.
지금까지 모든 것이 좋습니다. 내 값이 배열로 들어가고 하나의 조건을 가진 객체의 속성을 볼 수 있습니다. 서비스를 처리하는 함수 내부에서만.
- (void)viewDidLoad
{
SDZGeneratedWebService* service = [SDZGeneratedWebService service];
service.logging = YES;
[service callMyData:self action:@selector(callMyDataHandler:) dataId: 1];
[super viewDidLoad];
}
- (void) callMyDataHandler: (id) value {
// Handle errors
if([value isKindOfClass:[NSError class]]) {
NSLog(@"%@", value);
return;
}
// Handle faults
if([value isKindOfClass:[SoapFault class]]) {
NSLog(@"%@", value);
return;
}
// Do something with the NSMutableArray* result
NSMutableArray *result = (NSMutableArray *)value;
MyCustomClass *myObject = [result objectAtIndex:0];
NSLog(@"%@", myObject.myProperty); //Works Great
}
내가 말했듯이, 지금까지 모든 것이 완벽한 :
은 그냥 명확하게하기 위해, 여기에 코드입니다. 하지만이 함수 밖에서 데이터를 사용해야합니다. 내가myDataArray
에
result
배열을 복사하고자 할 때
그래서 내
.h
파일에, 나는
NSMutableArray *myDataArray;
같은 배열을 만들어, 그 객체가 사본 (내가 볼 수있는 myDataArray.count
값은 result
배열의 동일입니다)하지만, 모든 개체는 "out of scope
"입니다. 그래서 나는 그것을 사용할 수 없다.
for loop
에 인덱스 모든 개체를 복사하려고했으나 때 "
addObject
"같은
myDataArray
,
out of scope
합니다.
여기에 어떤 문제가 있습니까? 이런 식으로 사용자 정의 클래스의 배열을 생성 할 수 있습니까?
편집 : myDataArray 발생하고있어 코드 : 전에이 방법을 시도
myDataArray = [[NSMutableArray alloc] init];
[myDataArray removeAllObjects];
for (int i=0; i<((NSMutableArray *)result).count; i++) {
MyCustomClass *myObject = [result objectAtIndex:i];
[myDataArray addObject:myObject];
[myObject release];
}
[self.tableView reloadData];
} //(End of callMyDataHandler function)
을 너무 :
[myDataArray removeAllObjects];
duyurular = [result mutableCopy];
} //(End of callMyDataHandler function)
소스 코드와 dst 코드를 모두 만드는 포스트 코드입니다. – Nekto
디버거에서 "범위를 벗어난"것으로 보입니다. 맞습니까? 프로그래밍 방식으로 액세스하려고 시도 했습니까? 예외가 발생합니까? –
@Nekto, 질문을 편집하고 코드를 추가했습니다. – kubilay