2010-07-12 3 views
0

정수 데이터를 값으로 가져와 UILabel을 코어 데이터 개체에 저장할 수 있도록해야하지만이 오류가 계속 발생합니다. 이 시점에서 실패.'setQuantity :'의 인수 1을 전달하면 캐스팅하지 않고 정수에서 포인터를 만듭니다.

PurchaseOrderItem *newPOItem = (PurchaseOrderItem*) [NSEntityDescription insertNewObjectForEntityForName:@"PurchaseOrderItem" inManagedObjectContext:managedObjectContext]; 
      int qty = [qtyTextField.text integerValue]; 
      [newPOItem setProductName:productName.text]; 
      [newPOItem setDescription:productDescription.text]; 
      [newPOItem setPrice:[NSDecimalNumber decimalNumberWithString: retailPrice.text]]; 
      [newPOItem setQuantity:qty]; 
      [newPOItem setPurchaseorder:newEntity];           

      if (![managedObjectContext save:&error]) { 
       // Handle the error. 
       NSLog(@"%@",error); 
      } 

편집 : 가 여기 내 최종 솔루션입니다 - 완전히 말도 안되는 것 같지만 그것은 작동 :

NSDecimalNumber *price = [NSDecimalNumber decimalNumberWithString: [retailPrice.text stringByReplacingOccurrencesOfString:@"$" withString:@""]]; 
NSNumber *qty = [NSNumber numberWithInt: [qtyTextField.text integerValue]]; 
NSDecimalNumber *itemSubTotal =[price decimalNumberByMultiplyingBy:[NSDecimalNumber decimalNumberWithDecimal:[qty decimalValue]]]; 

답변

3

나는 PurchaseOrderItem의 양 속성이 NSNumber하지 NSInteger로 declarated되는 거라 확신. 그렇다면 다음과 비슷한 것을 할 필요가 있습니다 :

[newPOItem setQuantity: [NSNumber numberWithInt: qty]]; 
+0

그 것이 었습니다. 문자열과 숫자로 작업하는 다양한 방법을 모두 배우는 사람은 혼란 스럽습니다. -c - 감사합니다! – Slee

+0

지금은 NSDecimalNumber와 NSNumber가 있고 그 2 - 생각을 곱해야합니까? – Slee

+0

NSDecimalNumber에 익숙하지 않습니다. NSNumber 대신에 수레를 사용하는 이유가 있습니까? NSNumber를 사용했다면 다음과 같이하면됩니다 : NSNumber 결과 = [NSNumber numberWithFloat : [a floatValue] * [b floatValue]]; –

관련 문제