Я хочу получить записи из основного объекта данных и хочу, чтобы другие записи были введены против этого.ошибка при получении данных в uipickerview?
У меня есть две сущностей базовых данных Категории и продукт
я сделал их отношения, а также.
Я сделал с категорией часть.
сейчас я хочу добавить товары против выбранной категории.
для этого я использую UIPICKERVIEW
, чтобы показать категорию, а затем ее сохранить в продукте.
Вот NSObject подкласс Product.h
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@class Category;
@interface Product : NSManagedObject
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * is_active;
@property (nonatomic, retain) NSString * descript;
@property (nonatomic, retain) Category *category;
@end
и .m файл
#import "Product.h"
#import "Category.h"
@implementation Product
@dynamic name;
@dynamic is_active;
@dynamic descript;
@dynamic category;
@end
Что я пытаюсь сделать, где показать сборщика.
IMSAddProductViewController.h
#import <UIKit/UIKit.h>
@interface IMSAddProductViewController : UIViewController < UITextFieldDelegate, UIPickerViewDataSource, UIPickerViewDelegate>
@property (weak, nonatomic) IBOutlet UIPickerView *categoryPicker;
@property (weak, nonatomic) IBOutlet UITextField *txtEnterName;
@property (weak, nonatomic) IBOutlet UITextField *txtEnterDescription;
@property (weak, nonatomic) IBOutlet UISwitch *txtIsActive;
@property(nonatomic,retain)NSArray *arr;
@property (readonly, strong, nonatomic) NSMutableArray *categoryArray;
- (IBAction)btnSave:(id)sender;
@end
я не знаю, что должно быть отредактирован здесь в этом коде, чтобы показать Picker записи ..
IMSAddProductViewController.m
#import "IMSAddProductViewController.h"
#import "IMSAppDelegate.h"
#import "Product.h"
#import "Category.h"
@interface IMSAddProductViewController()
{
NSManagedObjectContext *context;
}
@end
@implementation IMSAddProductViewController
@synthesize arr;
@synthesize txtIsActive;
@synthesize categoryArray;
@synthesize txtEnterName;
@synthesize txtEnterDescription;
- (void)viewDidLoad
{
[super viewDidLoad];
IMSAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
context = [appDelegate managedObjectContext];
NSEntityDescription *category = [NSEntityDescription entityForName:@"Category" inManagedObjectContext:context];
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Category"];
request.resultType = NSDictionaryResultType;
request.propertiesToFetch = [NSArray arrayWithObject:[[category propertiesByName] objectForKey:@"arr"]];
NSError *error;
NSMutableArray *results = [[context executeFetchRequest:request error:&error] mutableCopy];
if (results == nil) {
//error handle here
}
[self setArr:results];
NSLog (@"name: %@",categoryArray);
}
- (NSInteger)numberOfComponentsInPickerView:
(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component
{
// return _countryNames.count;
return arr.count;
}
- (NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row
forComponent:(NSInteger)component
{
//return _countryNames[row];
return arr[row];
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
inComponent:(NSInteger)component
{
categoryArray = [self.arr objectAtIndex:row];
}
, когда я иду к нему, он рассматривает это исключение
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'* - [__ NSPlaceholderArray initWithObjects: Кол-во:]: попытка вставить ноль объект из объектов [0]'.
ли вы поставить точку останова в 'если это (результат == ноль) {// здесь ошибка здесь} ', чтобы убедиться, что все в порядке? – Larme