Objetivo C – IOS – Propiedad no encontrada en el object de tipo – al acceder a variables de object

Estoy construyendo una UIView que está conectada a una UITableView que contiene una list de artículos de la tienda y que está poblada por una matriz de datos asociada a una class de object (shopObjects).

aquí está mi tienda objects file H –

#import <Foundation/Foundation.h> @interface shopObjects : NSObject @property(strong) NSString *shopITitle; @property(strong) NSString *shopIGroup; @property(strong) NSString *shopIDesc; @property(strong) NSString *shopIPrice; @property Boolean offer; -(id)initWithshopITitle:(NSString *)shopITitleD shopIGroup:(NSString *)shopIGroupD shopIDesc: (NSString *)shopIDescD shopIPrice:(NSString *)shopIPriceD offer:(Boolean )offerD; @end 

Tienda de objects. Archivo M

 #import "shopObjects.h" @implementation shopObjects -(id)initWithshopITitle:(NSString *)shopITitleD shopIGroup:(NSString *)shopIGroupD shopIDesc:(NSString *)shopIDescD shopIPrice:(NSString *)shopIPriceD offer:(Boolean )offerD{ self= [super init]; if(self){ self.shopITitle = shopITitleD; self.shopIGroup = shopIGroupD; self.shopIDesc = shopIDescD; self.shopIPrice = shopIPriceD; self.offer = (offerD); } return self; } @end 

este es mi controller de vista .h file –

 #import <UIKit/UIKit.h> #import "shopObjects.h" @interface shopVCSelectionViewController : UIViewController @property (weak, nonatomic) IBOutlet UIScrollView *shopResScroller; @property (weak, nonatomic) IBOutlet UILabel *ShopItemTitle; @property (weak, nonatomic) IBOutlet UITextView *ShopItemDesc; @property (weak, nonatomic) IBOutlet UILabel *ShopItemPrice; @end 

y file VC .m –

 #import "shopVCViewController.h" @interface shopVCViewController () @end @implementation shopVCViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //Set Scroller [self.shopScroll setScrollEnabled:YES]; [self.shopScroll setContentSize:CGSizeMake(320, 1100)]; self.title = @"Shop"; self.shopArray = [NSArray arrayWithObjects:@"1 x PT session - £25",@"3 for 2 PT sessions - £50 ",@"1 x Running Club - £15",@"1 x PT session", nil]; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self.shopArray count]; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier =@"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; cell.textLabel.text=[self.shopArray objectAtIndex:indexPath.row]; return cell; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end 

Estoy tratando de vincular los campos de tags / text con las variables de object relevantes, pero el object shopObjects / variables asociadas no aparecen en el text pnetworkingictivo y obtengo el siguiente error de propiedad no encontrada: ¡no tengo idea de por qué! ¿Alguien puede ofrecer algún consejo por favor?

introduzca la descripción de la imagen aquí

No henetworkingó shopObjects en su viewController. Es un object separado. Debe crear una variable de tipo shopObjects , establecer sus properties y luego llamar a eso. p.ej

 shopVcSelectionViewController.h @property (strong, nonatomic) shopObjects *shopObject; shopVcSelectionViewController.m ... self.shopItemTitle.text = self.shopObject.shopTitle ... 

Intente @synthesize las variables en el file .m de ShopObjects.

El código que publicaste está en un método de instancia de la class shopSelectionViewController. Un shopSelectionViewController tiene una propiedad shopItemTitle, pero no una propiedad de shopITitle.

Esta línea

 self.shopItemTitle.text = self.shopITitle; 

No tiene sentido.

Si está tratando de get un título de un object de class "shopObjects", necesitará algo como esto:

 shopObjects *someShopObject = //code to fetch a shopObject self.shopItemTitle.text = someShopObject.shopITitle; 

También verá este error si tiene una instancia de object que es el mismo nombre que una class y, por error, opera en la class, no en su instancia (gracias, Xcode autocompletado).

Por ejemplo, suponga que tiene un controller de vista SetSignsViewController y crea una instancia del controller de vista llamado setSignsViewController :

 SetSignsViewController *setSignsViewController = (SetSignsViewController *) uiNavigationController.topViewController; 

Desea establecer el nombre de una propiedad llamada openHouseLocation :

 SetSignsViewController.openHouseLocation = self.openHouseLocation; 

Esto produce la Property 'openHouseLocation' not found on object of type 'SetSignsViewController' porque está operando en SetSignsViewController , no en setSignsViewController . Lo que realmente querías hacer fue:

 setSignsViewController.openHouseLocation = self.openHouseLocation;