如何共享数据计数(核心数据中的关系)

时间:2013-07-25 07:36:53

标签: iphone ios objective-c

我有一个问题......

我有两个ViewCotroller

名称为ViewControllerDetailViewController

DetailViewController有数据(Coredata中的关系)。

这是DetailViewController代码。

NSSet *tags = self.bookInfo.details.tags;
tagNamesArray = [[NSMutableArray alloc] initWithCapacity:tags.count];

for (Voca_Tag *tag in tags) {
    [tagNamesArray addObject:tag.mean];
}

我想在tagNamesArray.count中使用ViewController

另外,我被使用了

DetailViewController *detailViewController = [[DetailViewController alloc]init];

[detailViewController.tageNamesArray count];

它不起作用。

我想在UITableView上使用Count to cell.text。

pastebin.com/RwuR6PDt<<视图控制器 pastebin.com/2F345vg7<< DetaulViewController

检查...

2 个答案:

答案 0 :(得分:1)

你应该写你的委托:在SecondViewController.H:

@protocol messageDelegate <NSObject>
@optional
-(void) sendDataCount:(NSInteger) i;
@end
@interface SecondViewController : NSString
@property (nonatomic, assign) id <messageDelegate> delegate;
@end

在SecondViewController.m中:

-(void)readyToSend
{
    [self.delegate sendDataCount:__YOURCOUNT__];

}

在ViewController.h中:

@interface ViewController : UIViewController<messageDelegate>
@end

在ViewController.m中:

- (void)viewDidLoad {
SecondViewController *secondViewController = [[SecondViewController alloc] init];
secondViewController.delegate = self;
}
-(void) sendDataCount:(NSInteger) i
{
    NSLog(@"Your Count  =  %d",i);
    //send Data using POST method
}

希望它会有所帮助!

答案 1 :(得分:0)

这是因为tafNamesArray当时没有内存分配,因此该数组将返回nil,其计数将为零。

如果你想获得[tafNamesArray count],首先调用启动tafNamesArray的方法,例如:

   In DetailViewController
    -(void)array
    {

    NSSet *tags = self.bookInfo.details.tags;
    tagNamesArray = [[NSMutableArray alloc] initWithCapacity:tags.count];

    for (Voca_Tag *tag in tags) {
        [tagNamesArray addObject:tag.mean];
    }
    }

    then In ViewController

    call :

    DetailViewController *detailViewController = [[DetailViewController alloc]init];
//First call this method
    [detailViewController array];
//then  this line will work
     int i =   [detailViewController.tafNamesArray count];