私はサービスを持っており、 SudzC.comSOAP
でクラスと関数を生成しました。
だから私は彼らが生成したsoap関数を使用しています、それはNSMutableArray
私のカスタムクラス(彼らによっても生成されます)によって継承されたオブジェクトでを返します。
これまでのところすべてが良いです。私の値は配列に入り、1つの条件で任意のオブジェクトの任意のプロパティを見ることができました:サービスを処理している関数の内部のみ。
明確にするために、ここにコードがあります:
- (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
}
私が言ったように、これまでのところすべてが完璧です。ただし、この関数以外のデータを使用する必要があります。
だから私の.h
ファイルでは、私は次のような配列を作成しましたNSMutableArray *myDataArray;
result
配列をにコピーしようとすると、オブジェクトがコピーされます(値が配列と等しいmyDataArray
ことがわかります)が、すべてのオブジェクトは「」です。なので使えません。myDataArray.count
result
out of scope
また、すべてのオブジェクトをインデックスでコピーしようとしましたfor loop
が、オブジェクトはその値を取得していますが、 " addObject
" to myDataArray
、same 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)