Mik*_*ens 0 iphone if-statement objective-c
我很确定有更好的方法来实现我想要做的事情,我只是尝试不同的途径来看看什么对我最有用......所以我有一个带有4个段的UISegmentedController.我在界面生成器中给了每个标题,我想要做的是当他们按某个片段时会播放相应的视频.我正在使用webview,因为......这就是我所知道的...到目前为止......这是我的代码:
-(IBAction) getVideo: (id) sender
{
NSURL *videoURl;
NSString *videoURLString;
NSString *video;
video = [videoChoice titleForSegmentAtIndex:
videoChoice.selectedSegmentIndex];
if (video = @"Shimmy") {
videoURLString = [[NSString alloc] initWithFormat:
@"http://www.andalee.com/iPhoneVideos/mov.MOV"];
} else if (video = @"Camel") {
videoURLString = [[NSString alloc] initWithFormat:
@"http://www.andalee.com"];
} else {
videoURLString = [[NSString alloc] initWithFormat:
@"http://www.yahoo.com"];
}
videoURl = [[NSURL alloc] initWithString: videoURLString];
[videoView loadRequest: [NSURLRequest requestWithURL: videoURl]];
[videoURl release];
[videoURLString release];
}
Run Code Online (Sandbox Code Playgroud)
因此,当我使用它(视频= @"Shimmy")时,它直接进入视频,但对于每个片段都是相同的...现在,如果我将其更改为(video == @"Shimmy"),它会直接转到其他部分没有其他的.顺便说一句,现在的链接只是试图了解机制.
当你使用一个等号时,你正在做一个任务.所以:
if (video = @"Shimmy")
Run Code Online (Sandbox Code Playgroud)
这是测试您是否能够成功更改video为指向字符串@"Shimmy".
使用两个等号测试显式相等.所以:
if (video == @"Shimmy")
Run Code Online (Sandbox Code Playgroud)
这将测试视频是否相同且相同@"Shimmy".请注意,以下内容将为false:
if ([NSMutableString stringWithString:@"Shimmy"] == @"Shimmy")
Run Code Online (Sandbox Code Playgroud)
因为第一个字符串与第二个字符串不是同一个字符串.它们可能具有相同的内容,但它们不是同一个对象.
你在寻找的是:
if ([video isEqual:@"Shimmy"])
Run Code Online (Sandbox Code Playgroud)
这测试内容相等.