繁体   English   中英

调用方法时属性访问结果未使用错误

[英]Property access result unused error while invoking a method

我使用以下代码来调用方法,

APIRequest *apiRequest = [[APIRequest alloc]init];
apiRequest.pendingShipmentDetails ;

我收到以下警告,

属性访问结果未使用的吸气剂不应用于副作用

这是什么意思?

并且该方法同时被调用两次

以下是我的方法,

-(void)pendingShipmentDetails
{
    keyChain = [[KeyChainItemWrapper alloc] initWithIdentifier:@"LoginController" accessGroup:nil];
    NSString *username = [keyChain objectForKey:(__bridge id)(kSecAttrLabel)];

    NSString *bodyString = [NSString stringWithFormat:@"{\"method\":\"pending_shipment_details\",\"data\":{\"username\":\"%@\"}}",username];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"url"]];
    NSData *postData = [bodyString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
    [request setHTTPBody:postData];
    [request setHTTPMethod:@"POST"];
    NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];

    NSOperationQueue *queue = [[NSOperationQueue alloc] init];

    [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError)
     {
         if ([data length] > 0 && connectionError == nil)
         {
             [self receivedPendingShipmentDetailsData:data];
             NSString* pendingResponse = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
             NSData *jsonData = [pendingResponse dataUsingEncoding:NSUTF8StringEncoding];
             NSDictionary *jsonDic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:nil];
             NSDictionary *valueDict = [jsonDic objectForKey:@"value"];

             NSArray *details = [valueDict objectForKey:@"details"];

             NSMutableArray* arrayList = [[NSMutableArray alloc] init];

             for (NSDictionary *response in details) {
                 NSString *invoiceNo = [response valueForKey:@"invoice_no"];
                 NSString *shipmentNumber = [response valueForKey:@"shipment_no"];
                 NSString *invoiceDate = [response valueForKey:@"invoice_date"];
                 NSString *proformaInvoiceNumber = [response valueForKey:@"proforma_invoice_no"];
                 NSString *proformaInvoiceDate = [response valueForKey:@"proforma_invoice_date"];
                 NSString *plannedShipmentDates = [response valueForKey:@"planned_shipment_dates"];
                 NSString *pointOfContact =[[response objectForKey:@"point_of_contact"] valueForKey:@"empid"];
                 NSString *pendingStatus = [response valueForKey:@"status"];
                 NSDictionary *productName = [response valueForKey:@"products"];
                 NSDictionary *quantity = [response valueForKey:@"quantity"];
                 NSDictionary *rate = [response valueForKey:@"rate"];
                 NSDictionary *amount = [response valueForKey:@"amount"];
                 NSDictionary *productImages = [response valueForKey:@"product_image"];
                 NSDictionary *point_of_contact = [response valueForKey:@"point_of_contact"];

                 NSString *qty;
                 NSString *rte;
                 NSString *img;
                 NSString *address;
                 NSString *name;
                 NSString *amt;

                 for (int i = 0; i < [productName count]; i++) {
                     //  NSLog(@"product name %@",[productName valueForKey:[NSString stringWithFormat:@"%d",i ]]);
                     name = [productName valueForKey:[NSString stringWithFormat:@"%d",i ]];
                 }

                 for (int i = 0; i < [quantity count]; i++) {
                     //  NSLog(@"quantity %@",[quantity valueForKey:[NSString stringWithFormat:@"%d",i ]]);
                     qty = [quantity valueForKey:[NSString stringWithFormat:@"%d",i ]];
                 }

                 for (int i = 0; i < [rate count]; i++) {
                     //  NSLog(@"rate %@",[rate valueForKey:[NSString stringWithFormat:@"%d",i ]]);
                     rte = [rate valueForKey:[NSString stringWithFormat:@"%d",i ]];
                 }

                 for (int i = 0; i < [amount count]; i++) {
                     // NSLog(@"amount %@",[amount valueForKey:[NSString stringWithFormat:@"%d",i ]]);
                     amt = [amount valueForKey:[NSString stringWithFormat:@"%d",i ]];
                 }


                 for (int i = 0; i < [productImages count]; i++) {
                     // NSLog(@"product image %@",[productImages valueForKey:[NSString stringWithFormat:@"%d",i ]]);
                     img = [productImages valueForKey:[NSString stringWithFormat:@"%d",i ]];
                 }

                 for (int i = 0; i < [point_of_contact count]; i++) {
                     //  NSLog(@"pt of ct %@",[point_of_contact valueForKey:[NSString stringWithFormat:@"empid" ]]);
                     address = [point_of_contact valueForKey:[NSString stringWithFormat:@"empid" ]];
                 }


                 NSManagedObjectContext *context = [self managedObjectContext];

                 //update
                 if((self.pendingShipmentDAO) ) {
                     NSLog(@"update");
                     [self.pendingShipmentDAO setValue:shipmentNumber forKey:@"shipmentno"];
                     [self.pendingShipmentDAO setValue:proformaInvoiceNumber forKey:@"proforma_invoice_no"];
                     [self.pendingShipmentDAO setValue:proformaInvoiceDate forKey:@"proforma_invoice_date"];
                     [self.pendingShipmentDAO setValue:invoiceNo forKey:@"invoice_no"];
                     [self.pendingShipmentDAO setValue:invoiceDate forKey:@"invoice_date"];
                     [self.pendingShipmentDAO setValue:plannedShipmentDates forKey:@"planned_shipment_date"];
                     [self.pendingShipmentDAO setValue:address forKey:@"point_of_contact"];
                     [self.pendingShipmentDAO setValue:address forKey:@"empid"];
                     [self.pendingShipmentDAO setValue:name forKey:@"products"];
                     [self.pendingShipmentDAO setValue:qty forKey:@"quantity"];
                     [self.pendingShipmentDAO setValue:rte forKey:@"rate"];
                     [self.pendingShipmentDAO setValue:amt forKey:@"amount"];
                     [self.pendingShipmentDAO setValue:img forKey:@"product_image"];
                     [self.pendingShipmentDAO setValue:pendingStatus forKey:@"status"];
                 }else {

                     NSLog(@"create");

                     NSManagedObject *pendingShipment = [NSEntityDescription insertNewObjectForEntityForName:@"PendingShipmentDetails" inManagedObjectContext:context];

                     // [self deleteAllPreviousData];
                     [pendingShipment setValue:shipmentNumber forKey:@"shipmentno"];
                     [pendingShipment setValue:proformaInvoiceNumber forKey:@"proforma_invoice_no"];
                     [pendingShipment setValue:proformaInvoiceDate forKey:@"proforma_invoice_date"];
                     [pendingShipment setValue:invoiceNo forKey:@"invoice_no"];
                     [pendingShipment setValue:invoiceDate forKey:@"invoice_date"];
                     [pendingShipment setValue:plannedShipmentDates forKey:@"planned_shipment_date"];
                     [pendingShipment setValue:address forKey:@"point_of_contact"];
                     [pendingShipment setValue:address forKey:@"empid"];
                     [pendingShipment setValue:name forKey:@"products"];
                     [pendingShipment setValue:qty forKey:@"quantity"];
                     [pendingShipment setValue:rte forKey:@"rate"];
                     [pendingShipment setValue:amt forKey:@"amount"];
                     [pendingShipment setValue:img forKey:@"product_image"];
                     [pendingShipment setValue:pendingStatus forKey:@"status"];


                 }
             }
         }

         else if ([data length] == 0 && connectionError == nil)
         {
             [self emptyReply];
         }
         else if (connectionError != nil && connectionError.code == NSURLErrorTimedOut)
         {
             [self timedOut];
         }
         else if (connectionError != nil)
         {
             [self downloadError:connectionError];
         }
     }];

}

点表示法用于属性(获取或设置)它们。 因此,这里的编译器理解您要调用的是pendingShipmentDetails的getter。 您必须使用[]来调用方法。 apiRequest.pendingShipmentDetails替换为[apiRequest pendingShipmentDetails] ,警告应消失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM