-1

MasterViewController.h

NSString *quality;

MasterViewController.m

#import DetailViewController.h

-(void)viewDidLoad {
    quality = [NSString stringWithFormat:@"string to pass"];

    ...

}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showDetail"]) {
        DetailViewController *detailView = [segue destinationViewController];

        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

        theList = [app.listArray objectAtIndex:indexPath.row];

        detailView.theList = theList;

        detailView.streamQuality = quality;

    }
}

DetailViewController.h

@property (nonatomic ,retain) NSString *streamQuality;

DetailViewController.m

@synthesize streamQuality;

NSLog(@"Final: %@", streamQuality);

出力: ほとんどの場合、「スレッド 1: EXC_BAD_ACCESS(code=2, address=0x10)」
または「Final: Copy Audio Address」のようなランダムなメッセージが表示されます



ただし、これは正常に機能します。

detailView.streamQuality = @"hello";
4

1 に答える 1

1

NSStringオブジェクトの品質を保持するには、プロパティを作成する必要があります。例:

@property (nonatomic ,copy) NSString *quality;

そしてもちろん、それを合成する必要があります:

@synthesize quality;

次に、このプロパティを使用して文字列を設定する必要があります。このような :

self.quality = @"string to pass";
于 2013-09-17T10:44:56.960 に答える