English 中文(简体)
在装置上使用斜体灯塔——我可以不使用自称从子类别中提子。 属性
原标题:App doesn t run on the device - I can t call an attribute s class from its subclass without using self.attribute

If I have a Class (MyClass) with an attribute myAttribute, I can t use it in a subclass (MySubclass) without calling self.myAttribute. I have not problem with this sort of code when running the app with the simulator. You might be wondering: "why does she do this?". It s quite easy to add "self" everywhere. The problem is that in MySubclass I m overriding some accessor methods of MyClass. Here s an example:

- (NSDateFormatter *)dateFormatter
{
    if (dateFormatter == nil)
    {
        dateFormatter = [[NSDateFormatter alloc] init];
        // Do other stuff with the dateFormatter
    }

    return dateFormatter;
}

我可以说自己。 日期 炉内的形式,因为它会造成无休止的 lo。 我可以支持我处理该问题的班子,但处理此类问题可能是一个良好和简单的解决办法。

感谢!

最佳回答

你们必须记住这一点。 财产与[不动产]完全相同。

财产名称和案例变数不得有相同的名称以避免任何混淆。

Best way is to always preprend a common prefix to ivars.

@interface MyClass {
  // You don t have to declare iVar. Feel free to remove line.
  NSDateFormatter * iVarDateFormatter;
}

@property (retain) NSDateFormatter * dateFormatter;

@end

执行

@implementation MyClass
@synthetize dateFormatter= iVarDateFormatter;
...
@end

因此,你可以写:

- (NSDateFormatter *) dateFormatter
{
    if ( nil == iVarDateFormatter )
    {
        iVarDateFormatter = [[NSDateFormatter alloc] init];
        // Do other stuff with the dateFormatter
    }

    return iVarDateFormatter;
}

就单吨物体而言,甚至更好,使用GCD- 信号!

- (NSDateFormatter *) dateFormatter
{
    static dispatch_once_t pred;

    dispatch_once(& pred, ^{
        iVarDateFormatter = [[NSDateFormatter alloc] init];
        // Do other stuff with the dateFormatter
    });

    return iVarDateFormatter;
}
问题回答

暂无回答




相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签