• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

objective-c 成员变量没初始化所造成的灾难

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

以下是我所想要得到的效果:


但我实际得到的却是这么个玩意儿:


找了很久很久,起初还以为是弄乱了opengl的状态机,

但是其他元素的渲染却并没有出什么问题啊,很奇怪,很纠结,很揪心。。


-(void) drawPolygon:(b2Fixture*)fixture xf:(b2Transform)xf color:(b2Color)color {

b2PolygonShape *poly = (b2PolygonShape*)fixture->GetShape();

int32 vertexCount = poly->m_vertexCount;

b2Vec2 vertices[b2_maxPolygonVertices];

for (int32 i = 0; i < vertexCount; ++ i) {

vertices[i] =b2Mul(xf, poly->m_vertices[i]);

vertices[i] +=b2Vec2(0.5f,30.0f -0.5f);

vertices[i] *=_gCfg.multiplyFactor /4;

}

glColor4f(color.r, color.g, color.b,_littleMapContentOpacity);

glVertexPointer(2, GL_FLOAT, 0, vertices);

glDrawArrays(GL_TRIANGLE_FAN,0, vertexCount);

}


后来发现是因为_littleMapContentOpacity这个成员变量在init方法里面没有被赋初值,着实害死我不少脑细胞~


// BYRender.h

@interface BYRender :NSObject {

GCfg *_gCfg;

BOOL _isCutLineValid; // 切割不合格的话会产生一道红色的残影线~

int _durationTimes;

float _touchPathMaxWidth;

float _littleMapContentOpacity; // 小地图内容的透明度~

int _cutLineDurationTimes;

}

@propertyBOOL isCutLineValid;

@propertyfloat touchPathMaxWidth;

@propertyfloat littleMapContentOpacity;

@propertyint cutLineDurationTimes;

......


// BYRender.mm

#import"BYRender.h"


@implementation BYRender


@synthesize isCutLineValid =_isCutLineValid;

@synthesize touchPathMaxWidth =_touchPathMaxWidth;

@synthesize littleMapContentOpacity =_littleMapContentOpacity;

@synthesize cutLineDurationTimes =_cutLineDurationTimes;


+ (BYRender*) getInstance {

staticBYRender *instance;

@synchronized(self) {

if (!instance) {

instance = [[BYRenderalloc]init];

}

}

return instance;

}

- (id) init {

if ((self = [superinit])) {

_gCfg = [GCfg getInstance];

_isCutLineValid =YES;

_durationTimes =0;

_littleMapContentOpacity = [_gCfgffk:@"littleMapContentOpacity"];

}

returnself;

}

......


还有一个要注意的问题:

(有些小细节不注意影响到了程序逻辑的话,找起来是很费劲的,必须要未雨绸缪)

在判断 NSString 是否等于 @"" 之前,最好还是先判断一下其是否为 nil~

if(valueStr!=nil && ![valueStr isEqualToString:@""]) {}


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
(转)Objective-C内存布局发布时间:2022-07-12
下一篇:
objective-c源文件组织发布时间:2022-07-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap