iphone – 取消引用空指针,但我没有使用指针

iphone – 取消引用空指针,但我没有使用指针,第1张

概述我在xCode中进行了“构建和分析”,并在我的init-method中将普通int设置为0时获得“空指针取消引用”.我在下面的代码中注意到我收到消息的行.我正在为iPhone开发. Bric.m #import "Bric.h"@implementation Bric- (id)initWithImage:(UIImage *)img:(NSString*)clr{ if (se 我在xCode中进行了“构建和分析”,并在我的init-method中将普通int设置为0时获得“空指针的取消引用”.我在下面的代码中注意到我收到消息的行.我正在为iPhone开发.

Bric.m

#import "Bric.h"@implementation Bric- (ID)initWithImage:(UIImage *)img:(Nsstring*)clr{    if (self = [super init]) {        image = [[UIImageVIEw alloc] initWithImage:img];    }       stepX = 0; //It's for this line I get the message    stepY = 0;    oldX = 0;    color = [[Nsstring alloc]initWithString:clr];    visible = YES;    copIEd = NO;    return self;}   @end

Bric.h

#import <Foundation/Foundation.h>@interface Bric : NSObject {    int stepX;    int stepY;}  -(ID)initWithImage:(UIImage *)img:(Nsstring *)clr;@end

这不是完整的代码,粘贴我认为有用的东西.

由于我没有使用指针,我发现这很奇怪.我怎么得到这个消息?

感谢致敬,
尼克拉斯

解决方法 init方法中的第一个if语句是检查[super init]是否返回nil. (从技术上讲,它应该写成((self = [super init])),新的LLVM编译器会警告你.

静态分析器正在检查所有可能的代码路径,即使[super init]返回nil的情况也是如此.在这种情况下,if语句失败,self为nil.如果self为nil,则无法访问其实例变量.

要解决此问题,您需要将初始化置于if语句中并使用图像初始化,然后在if语句之外返回self.

总结

以上是内存溢出为你收集整理的iphone – 取消引用空指针,但我没有使用指针全部内容,希望文章能够帮你解决iphone – 取消引用空指针,但我没有使用指针所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1059066.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存