gpt4 book ai didi

ios - 使用自定义参数初始化 UIView

转载 作者:行者123 更新时间:2023-11-29 10:20:47 25 4
gpt4 key购买 nike

我试图在初始化时将数据传递给自定义 uiview。我按照概述的方法 here .

我的 UIView

-(instancetype)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder:aDecoder])
{
[self initAudioPlayer];
}

return self;
}

- (void)initAudioPlayer
{
self.player = [[AVAudioPlayer alloc]initWithContentsOfURL:self.fileURL error:nil];
[self.player prepareToPlay];

}

我的 View Controller

- (void)viewDidLoad
{
[super viewDidLoad];

self.audioURL = [[NSBundle mainBundle] URLForResource:@"audio4" withExtension:@"wav"];
AudioControlsView *view = [[[NSBundle mainBundle] loadNibNamed:@"AudioControlView"
owner:self
options:nil] objectAtIndex:0];
if (view)
{
view.fileURL = self.audioURL;
}
[self.view addSubview:view];

}

当我这样做时,这个 fileURL 为 nil。

我可以使用它:

- (void)setFileURL:(NSURL *)fileURL
{
_fileURL = fileURL;
self.player = [[AVAudioPlayer alloc]initWithContentsOfURL:self.fileURL error:nil];
[self.player prepareToPlay];
}

但我认为这不是正确的方法。

最佳答案

使用您现在拥有的代码,-initAudioPlayer 在您设置 fileURL 之前被调用。

我会删除 -initAudioPlayer 和所有初始化代码。您的 -setFileURL: 访问器方法是正确的方法。

关于ios - 使用自定义参数初始化 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35398844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com