【问题标题】:How do I change the value of BOOL?如何更改 BOOL 的值?
【发布时间】:2012-12-20 01:45:57
【问题描述】:

如何在 Objective-C 中更改 BOOL 的值? lightOn 是我需要帮助修改的 BOOL 值。

@synthesize button, view;
-(IBAction)torchOn:(id)sender;
     {
          AVCaptureDevice*flashlight = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if([flashlight isTorchAvailable] && [flashlight isTorchModeSupported:AVCaptureTorchModeOn] && [lightOn = YES])
{
    BOOL success  [[flashlight lockForConfiguration:nil]];
    if(success)
    {
        [flashlight setTorchMode:AVCaptureTorchModeOn];
        [flashlight unlockForConfiguration];
        lightOn = NO;
    }
}

}

【问题讨论】:

  • 学习 C,然后回到 ObjC。至少阅读一本关于 objc 的基础书籍,了解基元和对象有何不同。
  • BOOL success [[flashlight lockForConfiguration:nil]] 看起来完全不合适。看完之后..我不太确定什么是/应该发生的(或者为什么它会是一项如此艰巨的任务)。
  • 如何更改变量?您在 StackOverflow 上询问如何更改变量的值?
  • 您的代码包含一些错误,我已更正。我将再次选择@RichardJ.RossIII。
  • @anoop 不!不要修改问题中的损坏代码,这会使答案变得毫无意义!已还原。

标签: objective-c xcode boolean logic


【解决方案1】:

Objective-C 扩展了 ANSI C 语言。在那里开始学习。 Here's a primer

BOOL amICrazy;

amICrazy = YES;
// amICrazy = NO;
if (amICrazy == YES)
    [self seekHelp];

【讨论】:

  • 请记住BOOL 不是真正的布尔类型,它是signed char 的类型定义。
  • 你当然是对的。我只是不想把门开得太宽。我仍然发现从深潜到快潜会让我的大脑陷入困境。
【解决方案2】:

BOOL success [[flashlight lockForConfiguration:nil]]; 是无意义的声明。

即使我将[[flashlight lockForConfiguration:nil]] 读作[flashlight lockForConfiguration:nil],但lockForConfiguration: 方法应该返回一个BOOL 值。

然后可以通过以下方式将该值分配给成功:

BOOL success = [flashlight lockForConfiguration:nil];

【讨论】:

    猜你喜欢
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 2020-02-13
    • 2014-06-24
    相关资源
    最近更新 更多