【发布时间】:2012-03-08 09:20:17
【问题描述】:
假设我有一个带有整数实例变量和 1 个成员函数的对象。该函数在单独的线程上运行,并不断更新实例变量的值。我有第二个函数(不同类的一部分),它也在一个单独的线程上运行,并且需要实时访问第一个对象中的整数实例变量。因此,我将指向实例变量的指针传递给第二个函数,而第二个函数只是取消引用该指针。这样,第二个函数始终可以访问实例变量的更新值。
但是,我不希望第二个函数能够更改实例变量的值。我希望它具有只读访问权限,但是由于我传递了一个指向实例变量的指针,它是否能够更改实例变量的值?如果是这样,我如何将指针取消引用限制为只读?如果这不可能,那么解决这个问题最安全的方法是什么?
Mac OS X 雪豹,Xcode 3.2.6。带有 Cocoa 的 Objective-C。
编辑:对不起,我忘了提到我不能使实例变量成为常量,因为我需要它所属的类才能修改它。如果我让它保持不变,它将完全限制对变量的写入。
【问题讨论】:
标签: objective-c macos oop memory pointers