我有一个自定义视图,我从drawrect函数中绘制了一些图形,效果很好。
但是,我喜欢根据我在执行setNeedsDisplay之前传递视图的数组的争议来绘制。在drawRect函数中如果我使用带有drawRect的NSString或NSarray,我得到一个嵌套函数错误,我不明白?
这是我的代码:
// MyView.h
#import <UIKit/UIKit.h>
@interface MyView : UIView {
}
@end
// MyView.m
#import "MyView.h"
@implementation MyView
CGContextRef c;
CGFloat black[4] = {0.0f, 0.0f, 0.0f, 1.0f};
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
// Initialization code
}
return self;
}
- (void)drawRect:(CGRect)rect {
c = UIGraphicsGetCurrentContext();
CGContextSetStrokeColor(c, black);
//Gives a nested functions are disabled error at compiletime
NSString nsz * = @"test";
}
- (void)dealloc {
[super dealloc];
}
@end
答案 0 :(得分:1)
底线是“嵌套函数”错误只是您在语法错误时出现的“常规”错误。
例如忘记关闭支架。或者是一个迷路的操作员。
(编辑 - 实际上在这种情况下它是一个迷路'*'运算符。)
它实际上与“嵌套函数”(通常)无关,而且问题可能几乎在文件的任何位置,甚至是以前的文件。
抱歉,我无法发现拼写错误!
答案 1 :(得分:0)
@property (nonatomic, copy) NSArray nary;
NSArray ns = [nary objectAtIndex:0];
你需要一个星号:
@property (nonatomic, copy) NSArray *nary;
NSArray *ns = [nary objectAtIndex:0];
此外,您应该很少直接记录对象。而是使用格式字符串:
NSLog(@"%@", nary);