代码之家  ›  专栏  ›  技术社区  ›  Richard J. Ross III

在objective-c中使用常量对象

  •  0
  • Richard J. Ross III  · 技术社区  · 14 年前

    我有一段类似的代码:

    //Foo.h
    OBJC_EXPORT MyObject *const myObj;
    
    // Foo.m
    MyObject *const myObj;
    
    @implementation Foo
    
    +(void) initialize
    {
        if (self = [Graph class])
        {
              myObj = [Config get:@"Foo"]; // <--- ERROR! assignment of read-only variable 'Foo'
    
              // ....
        }
    }
    
    // ....
    
    @end 
    

    1 回复  |  直到 14 年前
        1
  •  1
  •   bosmacs    14 年前

    可能有更好的方法,但我的第一个想法是通过额外的指针间接分配它,例如:

    MyObject** nonConstObj = (MyObject**)&myObj;
    *nonConstObj = [Config get:@"Foo"];
    

    如果是C++, const_cast<>