У меня есть метод, который сохраняет данные клиента, введенные в форму, которая вызывает метод createPDFFile. У меня есть файл PDF, созданный, и в нем есть некоторые строки-заполнители, чтобы я мог выложить PDF-файл, и теперь я хочу взять stringValue из NSTextField, а затем добавить его в String, который содержит фрагмент для ex: @ «Name:» добавьте stringValue из NSTextField. Я могу получить первый элемент для работы, поскольку я изменил IBOutput, чтобы сохранить, и это сработало для первого элемента, но не второго, и так далее. Я получаю ошибку BAD_AXCESS, но только когда метод завершен.Попытка добавить строку в другую строку из NSTextField для печати в PDF-файле
Вот начало метода PDF рисования:
-(void)drawPDFCustomerInfoWithContext:(CGContextRef)currentContext andWithPageSize:(CGSize)pageSize andCustomerObject:(Customer *)currentCustomer{
CTFontRef font = CTFontCreateWithName(CFSTR("Arial"), 12, NULL);
CFRange currentRange = CFRangeMake(0, 0);
CGContextSetTextMatrix(currentContext, CGAffineTransformIdentity);
NSString *customerName = [[[@"Name: " stringByAppendingString:self.firstNameTextField.stringValue] stringByAppendingString:@" "] stringByAppendingString:self.lastNameTextField.stringValue];
NSString *customerAddress = @"Address: ";
NSString *customerCity = @"City: ";
NSString *customerState = @"State: ";
NSString *customerZipcode = @"Zipcode: ";
NSString *customerPhone = @"Phone: ";
NSString *customerEmail = @"Email: ";
CFStringRef customerNameStringRef = (__bridge CFStringRef)customerName;
CFStringRef customerAddressStringRef = (__bridge CFStringRef)customerAddress;
CFStringRef customerCityStringRef = (__bridge CFStringRef)customerCity;
CFStringRef customerStateStringRef = (__bridge CFStringRef)customerState;
CFStringRef customerZipCodeStringRef = (__bridge CFStringRef)customerZipcode;
CFStringRef customerPhoneStringRef = (__bridge CFStringRef)customerPhone;
CFStringRef customerEmailStringRef = (__bridge CFStringRef)customerEmail;
Вот метод сохранения:
- (IBAction)sendEstimateToCustomer:(id)sender {
float tempFloat = [[self.estimateNumberLabel stringValue]floatValue];
self.customerDataArray = [[NSMutableArray alloc]initWithArray:[self createCustomerDataArrayWithFirstName:self.firstNameTextField.stringValue andLastName:self.lastNameTextField.stringValue andAddress:self.customerAddress.stringValue andCity:self.customerCity.stringValue andState:self.customersState.stringValue andZipCode:self.customerZipcode.stringValue andPhone:self.customerPhone.stringValue andEmail:self.customerEmail.stringValue andEstimateNumber:tempFloat]];
self.customer = [[Customer alloc]initWithCustomerDataArray:self.customerDataArray];
[self createEstimatePDF];
Вот метод createEstimatePDF
-(void)createEstimatePDF{
NSLog(@"create Estimate Method Fired");
CGContextRef pdfContext;
CFURLRef url;
url = [self createPDFPath];
CFMutableDictionaryRef myDictionary = NULL;
myDictionary = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFDictionarySetValue(myDictionary, kCGPDFContextTitle, CFSTR("My PDF File"));
CFDictionarySetValue(myDictionary, kCGPDFContextCreator, CFSTR("Ben"));
pdfContext = CGPDFContextCreateWithURL(url,NULL, myDictionary);
CFRelease(url);
CGPDFContextBeginPage(pdfContext,myDictionary);
CGSize pageSize = CGSizeMake(612, 792);
[self drawPDFJobDescriptionTableWithContext:pdfContext andWithPageSize:pageSize];
[self drawPDFContractualTextWithContext:pdfContext andPageSize:pageSize];
[self drawPDFCustomerInfoWithContext:pdfContext andWithPageSize:pageSize andCustomerObject:self.customer];
[self drawPDFEstimateNumberWithContext:pdfContext andWithPageSize:pageSize];
[self drawPDFJobTableHeadersWithContext:pdfContext andPageSize:pageSize];
[self drawPDFBorderWithContext:pdfContext andWithPageSize:pageSize];
[self drawPDFHeaderWithContext:pdfContext andWithPageSize:pageSize];
[self drawPDFLegalStatementWith:pdfContext andPageSize:pageSize];
[self drawPDFSignatureAndDateWith:pdfContext andPageSize:pageSize];
[self drawPDFSignLinesWithContext:pdfContext andPageSize:pageSize];
CFRelease(myDictionary);
CGPDFContextEndPage(pdfContext);
Я думаю, что некоторые вещи выходит, но я не могу узнать, где. Я наблюдал за переменными и перешагнул их, и они отображают значение до конца, а затем стреляют, ударяют последнюю закрывающую скобку для метода, а затем показывают ошибку BAD_ACCESS. То, что я не под стендом, что это работает,
NSString *customerName = [[[@"Name: " stringByAppendingString:self.firstNameTextField.stringValue] stringByAppendingString:@" "] stringByAppendingString:self.lastNameTextField.stringValue];
Ive пытался скопировать значения более, а также для передачи данных с помощью методов, а также с объектом клиента передается.
Если требуется дополнительная информация, я могу предоставить. Все NSTextfields являются сохранить