小编Pau*_*l.s的帖子

点语法与getter =的方法语法

我不确定这个问题有多少用处,但对我来说似乎很有意思......

我认为使用property/synthesize语句等同于我创建getter/setter.因此

// .h
@property (nonatomic) BOOL on;

// .m
@synthesize on = _on;

// In my mind synthesizes the following methods

// - (BOOL)on;
// - (void)setOn:(BOOL)on;
Run Code Online (Sandbox Code Playgroud)

但是,如果我将声明更改为以下内容:

                              v
@property (nonatomic, getter=isOn) BOOL on;

@synthesize on = _on;

// In my mind synthesizes the following

// - (BOOL)isOn;
// - (void)setOn:(BOOL)on;
Run Code Online (Sandbox Code Playgroud)

然后给出上面的内容我覆盖了getter,所以我知道它何时被调用:

- (BOOL)isOn;
{
    NSLog(@"I was called");
    return _on;
}
Run Code Online (Sandbox Code Playgroud)

现在在实例(myClass)上调用以下内容会导致:

NSLog(@"%d", [myClass isOn]);

//=> 2012-02-09 22:18:04.818 Untitled[1569:707] I was called
//=> 2012-02-09 22:18:04.820 Untitled[1569:707] 1 …
Run Code Online (Sandbox Code Playgroud)

objective-c

12
推荐指数
1
解决办法
903
查看次数

RubyMotion和指针

我是一个Objective-C菜鸟,已经搜索了高低不能找到答案:

在我的RubyMotion项目中,我有一个名为StatusGuage的UIView子类,它包含一个名为drawLinearGradient的方法,如下所示:

def drawLinearGradient(context, rect, startColor, endColor)
  colorspace = CGColorSpaceCreateDeviceRGB()
  locations = [0.0, 1.0]
  # colors = NSArray.arrayWithObjects(startColor, endColor, nil)
  # ptrColors = Pointer.new(:object, colors)
  colors = [startColor, endColor, nil]
  # CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef) colors, locations);
  CGGradientCreateWithColors(colorspace, colors, locations)
end
Run Code Online (Sandbox Code Playgroud)

我想知道如何调用CGGradientCreateWithColors.它显然需要一个(CFArrayRef)指针,但我无法弄清楚如何传入它.我尝试过的迭代之一被注释掉了.

这是错误消息:

2012-05-11 16:57:36.331 HughesNetMeter[34906:17903] 
*** Terminating app due to uncaught exception 'TypeError', 
  reason: 'status_guage.rb:43:in `drawLinearGradient:': expected 
  instance of Pointer, got `[0.0, 1.0]' (Array) (TypeError)
    from status_guage.rb:13:in `drawRect:'
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

ruby ios rubymotion

6
推荐指数
1
解决办法
1875
查看次数

在Objective-C中命名类的指南

首先,Objective-C中没有名称空间,这是一回事.但是当一个项目的大小和文件增加,并且添加了UITableCellViews和其他子视图时,命名我的类往往会成为一个真正的痛苦.

例如,在表中使用名为EEMSystem的模型,我自然地命名自定义UITableViewCell的方式类似于EEMSystemTableViewCellController.m.这创建了很长的类名.

命名控制器,视图和模型是否有任何指导原则?你使用什么指南?

cocoa cocoa-touch objective-c naming-conventions

5
推荐指数
1
解决办法
4003
查看次数