【问题标题】:How to set a BOOL value that can be used in other files of obj-c如何设置一个可以在obj-c的其他文件中使用的BOOL值
【发布时间】:2011-06-14 20:43:25
【问题描述】:

我正在尝试设置一个 BOOL 值,该值需要在我执行 XML 解析的另一个文件中进行检查。

filename.m 中是这样的:

    if (internetConnectionStatus == NotReachable) {

        //SET A BOOL VALUE TO FALSE

    } else {    

        //SET A BOOL VALUE TO TRUE

    }

在 XMLParserfile.m 中我需要检查 filename.m 中设置的 BOOL 值是 TRUE 还是 FALSE

    if (BOOLVALUEORSOMETHING == TRUE) {

        //DO THIS

    } else {    

        //DO THAT

    }

这可能是一个愚蠢的问题,但最好的方法是什么。

【问题讨论】:

  • 欢迎来到 StackOverflow。 :-)

标签: iphone objective-c


【解决方案1】:

将其用作属性。

@property (nonatomic, assign) BOOL number;

【讨论】:

    【解决方案2】:

    这样的事情应该可以工作。我不确定您的全部目标,因此在某些情况下您可能实际上想要使用静态类或方法。

    文件名.h:

    #import <Foundation/Foundation.h>
    
    typedef enum {
    NotReachable
    } InternetConnectionStatus;
    
    @interface filename : NSObject
    {
        BOOL isReachable;
    }
    
    @property BOOL isReachable;
    
    @end
    

    文件名.m:

    #import "filename.h"
    
    @implementation filename
    @synthesize isReachable;
    
    - (id)init
    {
        self = [super init];
        if (self) {
            // Initialization code here.        
            InternetConnectionStatus internetConnectionStatus = NotReachable;
            if (internetConnectionStatus == NotReachable) {
    
                //SET A BOOL VALUE TO FALSE
                self.isReachable = FALSE;
    
            } else {    
    
                //SET A BOOL VALUE TO TRUE
                self.isReachable = TRUE;
            }                
        }
    
        return self;
    }
    
    @end
    

    XMLParserfile.h:

    #import <Foundation/Foundation.h>
    
    @interface XMLParserfile : NSObject
    
    @end
    

    XMLParserfile.m:

    #import "XMLParserfile.h"
    #import "filename.h"
    
    @implementation XMLParserfile
    
    - (id)init
    {
        self = [super init];
        if (self) {
            // Initialization code here.
            filename *file = [[filename alloc] init];
    
            if(file.isReachable == TRUE)
            {
                // DO THIS
            }
            else
            {
                // DO THAT.
            }
        }
    
        return self;
    }
    
    @end
    

    【讨论】:

    • 没用,我猜self = [super init];
    • self = [super init]; 很好
    【解决方案3】:

    您可以通过以下几种方式之一来执行此操作。我已经在this answer to another question 中讨论过这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 2017-12-23
      • 2011-12-30
      • 2017-03-03
      • 1970-01-01
      相关资源
      最近更新 更多