2013-04-09 64 views
0

我是這個mac應用程序開發的新手。EXC_BAD_ACCESS類型NSString的錯誤

該應用程序正常工作的一些數據和應用程序崩潰的條目。

-(void)presentClientsss 
{ 
    [productVendorTextField setStringValue:[NSString stringWithFormat:@"%@", [[popUpVendor selectedItem] title]]]; 

    NSMenuItem *tempMenuItem = [popUpVendor selectedItem]; 
    NSString *selectedItemTitle = [tempMenuItem title]; 

    for (int k = 0; k < [appDelegate.vendorInfoArr count]; k++) 
    { 
     VendorInfo *tempCustomerInfoModel = [appDelegate.vendorInfoArr objectAtIndex:k]; 

     if ([tempCustomerInfoModel.vendorName isEqualToString:selectedItemTitle]) 
     { 
      oldVendorIde = [NSString stringWithFormat:@"%ld", tempCustomerInfoModel.rowId]; 

      NSLog(@"Selected RowID = %@",oldVendorIde); 

      break; 
     } 
    } 
} 

我發送oldVendorIde字符串到下一個方法。

- (ItemModel *)itemNodelWithAttributes { 
    isProductIdExist = NO; 

    if ([senderInfo isEqualToString:@"nP"]) { 
     for (int i = 0; i < [appDelegate.itemsArr count]; i++) { 
      ItemModel *tempIM = [appDelegate.itemsArr objectAtIndex:i]; 
      if ([tempIM.productId isEqualToString:[[productIdTextField stringValue] uppercaseString]]) { 
       isProductIdExist = YES; 
       break; 
      } 
     } 
    } 

    if ([senderInfo isEqualToString:@"eP"]) { 
     for (int i = 0; i < [appDelegate.itemsArr count]; i++) { 
      ItemModel *tempIM = [appDelegate.itemsArr objectAtIndex:i]; 
      if (tempIM.itemId == itemIdentity) { 
       if ([tempIM.productId isEqualToString:[[productIdTextField stringValue] uppercaseString]]) { 
        isProductIdExist = NO; 
       } 
      } 
      else if ([tempIM.productId isEqualToString:[[productIdTextField stringValue] uppercaseString]]) { 
       isProductIdExist = YES; 
      } 
     } 
    } 
    int tempItemExists = [self saveProductImage:[[productIdTextField stringValue] uppercaseString]]; 

    NSLog(@"oldVendorIde =%@",oldVendorIde); 
    ItemModel *iM = [[ItemModel alloc] initWithItemId:itemIdentity defaultItemMinimumValue:[productMinValueTextField floatValue] staticItemPrice:[productPriceTextField doubleValue] dynamicItemQuantity:[productCurrentStockTextField doubleValue] staticItemDescription:[productDescriptionTextField stringValue] prodId:[[productIdTextField stringValue] uppercaseString] itemVendor:oldVendorIde itemImgExists:tempItemExists stockAvailable:0 itemNotes:[notesTextField string] BarcodeDesc:[BarcodeDescTextView stringValue]]; 

    return iM; 
} 

在這種方法同樣oldVendorIde工作正常了一些數據,有些時候它就會在這一點上墜毀。

oldVendorIde有時在itemNodelWithAttributes方法中沒有得到任何值,並且該應用在該點崩潰。

曾根能幫我解決這個問題..謝謝提前..

回答

0

UITextField文本通過text屬性([productIdTextField text])訪問,而不是通過stringValue

+0

這將是一個'NSTextField'而不是'UITextField',但是相同的交易。 – dreamlax 2013-04-09 10:36:18