Свойства объекта не передаются делегату - PullRequest
1 голос
/ 09 июля 2011

У меня есть управляемый объект, определенный в одном файле .h:

@interface MyItem : NSManagedObject {
NSString *itemName;
NSInteger itemType;
}

@property (nonatomic, retain) NSString *itemName;
@property NSInteger itemType;

@end

А затем у меня есть uiViewController, для которого определен протокол:

@protocol uiViewControllerDelegate <NSObject>
- (void) controllerIsDone:(MyItem *) myItem;
@end

Обычно где-то в реализации класса uiViewControler я вызываю этот протокол:

NSLog(@"Self item has its properties %@ and %i", 
    self.myItem.itemName, self.myItem.itemName);

[[self delegate] controllerIsDone:self.myItem];

У меня есть tableViewController, который является делегатом этого uiViewController.

А у меня есть tableViewController

@interface tableViewController : UITableViewController <uiViewControllerDelegate>

Этот tableViewController реализует метод протокола:

- (void) controllerIsDone:(MyItem *) myItem {
    NSLog("This is what I received %@ and %i", myItem.itemName, myItem.itemType);
}

Подскажите, пожалуйста, почему в консоли я получаю это:

Self item has its properties SampleName and 1
This is what I received  and 0

То есть, хотя я передаю self.item uiViewController в tableViewController, он не обладает всеми своими свойствами. Зачем? Как мне передать весь объект myItem, чтобы я мог использовать его свойства, которые установлены в свойстве myitem uiViewController?

Ответы [ 2 ]

0 голосов
/ 10 июля 2011

Изменение

@interface MyItem : NSManagedObject 

на

@interface MyItem : NSObject

исправлено все.

0 голосов
/ 09 июля 2011

Вы сохраняете myItem?Проверьте значение указателя myItem перед его передачей и при получении:

NSLog(@"Self item has its properties %@ and %i, and pointer value %p", 
      self.myItem.itemName, self.myItem.itemName, self.myItem);

- (void) controllerIsDone:(MyItem *) myItem {
    NSLog("This is what I received %@ and %i, and pointer value %p", myItem.itemName, myItem.itemType,myItem);
}

Если они не совпадают (или имеют нулевое значение во втором случае), вероятно, оно не было сохранено должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...