UITextField 上的无效上下文 0x0 (Xcode 5)

Posted

技术标签:

【中文标题】UITextField 上的无效上下文 0x0 (Xcode 5)【英文标题】:Invalid context 0x0 on UITextField (Xcode 5) 【发布时间】:2013-10-19 18:36:43 【问题描述】:

我在我的应用程序中使用 UITextField。我正在使用[texfield becomeFirstResponder]。这工作得很好,并在加载视图时加载键盘。但是,当我在 UITextField 出现后再次单击它时,会出现此错误。我不明白为什么,但这是我得到的输出:

CGContextSetFillColorWithColor: invalid context 0x0.
CGContextSetStrokeColorWithColor: invalid context 0x0. 
CGContextSaveGState: invalid context 0x0. 
CGContextSetFlatness: invalid context 0x0. 
CGContextAddPath: invalid context 0x0. 
CGContextDrawPath: invalid context 0x0. 
CGContextRestoreGState: invalid context 0x0. 
CGContextSaveGState: invalid context 0x0. 
CGContextSetFlatness: invalid context 0x0. 
CGContextAddPath: invalid context 0x0.
CGContextDrawPath: invalid context 0x0. 
CGContextRestoreGState: invalid context 0x0.

这是我的代码:

// ViewController.h
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UITextField *textField;

@end


// ViewController.m
@synthesize textField;

- (void)viewDidLoad

    [textField becomeFirstResponder];
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

【问题讨论】:

你能再贴一些代码吗? ? 我的意思是我真的不知道我还能添加多少源代码,哈哈。它非常不言自明。我通过@Priyatham51 编辑了它 这就是这个错误的惊人之处。您可以使用零代码复制它——您甚至不需要文本字段的出口。但是,为了重现警告,双击时文本字段确实需要完全为空。此外,这个错误在 ios 7.0.3 的模拟器和设备上都存在。 【参考方案1】:

我相信您已经发现了一个 iOS 错误(或者至少是一个模拟器错误)。你可以更简单地重现它:

新项目(单一视图) 将 UITextField 拖到 Storyboard 上 运行 单击 UITextField。 点击关闭 UITextField 点击 UITextField (在某些情况下,您需要再次单击关闭 UITextField) 观察错误

我建议打开雷达。

【讨论】:

感谢您的回复。我认为这可能是一个模拟器错误,但不确定。我只是害怕这个应用程序会被生成然后无法工作,所以我想我会看到堆栈溢出时我会得到什么响应。你能解释一下雷达是什么吗?我会做的。 Radar 是 bugreport.apple.com 的昵称。 “雷达”是在该系统上打开的缺陷。 (娱乐一下:“雷达”这个名字来自电视剧《MASH》,这个名字的人物总是在你问之前就知道你想要什么。) @Zack 你填满了这个雷达吗?我的经历完全一样。 是的,我有。 @amb 它实际上是关闭的,因为它是重复的。 “工程部门已确定您的错误报告与另一个问题重复,将被关闭。您的问题被复制到的原始错误报告的打开或关闭状态显示在错误报告器用户界面的黄色“XXXXXXXX 重复”部分. 此部分显示在错误编号、标题、状态、产品和排名下方的右列错误详细视图顶部附近。"【参考方案2】:

您似乎在屏幕上绘制了一些上下文。您需要在 drawRect 方法中编写绘图代码。你在elseWhere写了代码。在 drawRect 方法中确保检查上下文是否也存在。

CGContextRef context = UIGraphicsGetCurrentContext();
   if (context) 
        // Do your stuff
           

【讨论】:

如果您将我上面提供的源代码复制并粘贴到 Xcode 5 故事板中带有 UITextField 的新项目中,当您单击您创建的 UITextField 时,它会给您错误。

以上是关于UITextField 上的无效上下文 0x0 (Xcode 5)的主要内容,如果未能解决你的问题,请参考以下文章

关闭 UIImageView 时上下文 0x0 无效

为啥我在基于文档的应用程序中收到无效上下文 0x0 错误?

CGContextDrawImage:加载灰度图像时上下文 0x0 无效

<错误>:CGContextSaveGState:无效上下文 0x0 错误

将视网膜图像转换为视频:“CGContextScaleCTM:无效上下文 0x0。这是一个严重错误。”

iOS 7.0 下的无效上下文 0x0 和系统降级