不同SDK对pathForResource函数兼容问题

问题描述
前些天做AD iPad版,程序在4.2版本的iPad上运行良好,但是安装到3.2版本的iPad上有些功能点load不出。

问题分析
设置断点,一步一步跟踪,查找到:

// init position
NSString *plistPath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d/feature_point",[self getPage]] ofType:@"plist"];
_positions=[[NSDictionary alloc] initWithContentsOfFile:plistPath];

以上代码plistPath值为空,查找这句中所有的语句的SDK支持,都只要SDK2.0,而我们是3.2,完全符合。

问题解决
一步一步排除,最后焦点在pathForResource: ofType:函数,查找SDK的时候发现另有一个函数是pathForResource: ofType: inDirectory:函数,把该句改为:

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"feature_point" ofType:@"plist" inDirectory:[NSString stringWithFormat:@"%d",[self getPage]]];

问题解决了!!!

Project Settings的设置bug

问题描述
帮客户的iPad安装AD demo,机器SDK是4.2.1,客户iPad SDK是3.2,直接developer debug不成功。

问题分析
把“Project Settings”的"Build"选项卡里的"Base SDK"设置为"Latest iOS"(最高),并把"iOS Deployment Target"设置为"iOS 3.0"(最低)。

问题解决
网上查了下,看到一老外的解决办法,如下:

I believe the only requirement is that you edit and resave the info.plist file. I editted to 1.7, saved, and then back to 1.0 and it worked fine.

It may be that XCode is binding in additional details from the build settings at the time of packaging and since the info.plist hadn't changed those additional bindings did not get attached. If this is the case I would consider it a bug.

我也认为是一个iOS的Bug,只有修改info.plist才会导致project settings设置生效。

《秒速五厘米》

“我只是做好手边力所能及的事情。”
“我们发了1000次短信,可心灵的距离恐怕只靠近了1厘米……”

时间和空间造就爱情,也消磨爱情。

本片的时间推断:第三话的时间设定是2008年(杂志上提到1999年发射的火箭终于到达太阳系边缘),所以第二话主人公高三的时候是1999年,逆推之,初中一年级大约是1994年,再推之,主人公们的出生年度大约是1981年。

在种子岛,我们被骗了,以为是他一直在给明里短信,我想,那一定是在心里发给明理的短信,那是精神上的神往,却不曾带给人幸福。最终也未表白的乡村少女,只能在冲浪中慢慢成长。

画面没得说,每一帧都能截图做桌面,特别是各种光效。
插曲《One more time One more chance》超好听,配合电影绝配,让我不禁以为电影是新海诚是专这首歌做的MV。
最后附上歌词:
  还要失去什么东西 才能让我得到宽恕   还要承受多少痛苦 才能与你再次相会   One more time 四季啊 不要更替   One more time 回到那与你嬉戏的时光   争吵的时候 总是我先认输   可你的任性 令我更加迷恋   One more chance 被记忆禁锢的我   One more chance 已无法选择下一个归宿   我一直在寻觅 寻觅着你的身影   对面的房间 巷中的窗口   虽然明知你不在那里   若愿望能够实现 我要立刻到你身边   已经不再害怕什么   即使付出一切 也要将你抱紧   若只是排解寂寞 谁都可以取代   但在这繁星欲坠之夜 我无法再欺骗自己   One more time 四季啊 不要更替   One more time 回到那与你嬉戏的时光   我一直在寻觅 寻觅着你的身影   熙攘的街头 彷徨的梦中   虽然明知你不在那里   若奇迹能够发生 我要立刻与你相见   在一个崭新早晨 抛弃所有过去   说出那句酝酿已久的「我爱你」   夏天的回忆萦绕在心头   想起无意间消逝的心动   我一直在寻觅 寻觅着你的身影   黎明的街道 落樱的小镇   虽然明知你不在那里   若愿望能够实现 我要立刻到你身边   已经不再害怕什么   即便付出一切 也要将你抱紧   我一直在寻觅 寻觅着你的音讯   启程的旅店 报纸的角落   虽然明知你不在那里   若奇迹能够发生 我要立刻与你相见   在一个崭新早晨 抛弃所有过去   说出那句酝酿已久的「我爱你」   我一直在寻觅 寻觅着你的笑容   疾驰的列车 铁道的两旁   虽然明知你不在那里   若生命能够轮回 无论几次也与你相随   已经没有什么 能够令我留恋   只要有你 我别无所求

UIImageView frame设置顺序问题

问题描述:
今天做AD ipad版展示功能点,背景不显示。

问题分析:
检查代码,其他都没什么问题。发现设置frame在设置image之前。

代码如下:

UIImage *backgroundImage=[UIImage imageNamed:BACKGROUND_FILE_NAME];
_backgroundImageView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, backgroundImage.size.width, backgroundImage.size.height)];
_backgroundImageView.image=backgroundImage;

问题解决:
把设置frame代码放置在设置frame之后,一切安逸了。

代码如下:

_backgroundImageView=[[UIImageView alloc] init];
UIImage *backgroundImage=[UIImage imageNamed:BACKGROUND_FILE_NAME];
_backgroundImageView.image=backgroundImage;
_backgroundImageView.frame=CGRectMake(0, 0, backgroundImage.size.width, backgroundImage.size.height);

UIButton click不触发问题

问题描述:
今天做AD的ipad版展示功能点,为UIButton加入点击事件后,没有调用效果。

问题分析:
代码如下:

[button addTarget:self action:@selector(groupClicked:) forControlEvents:UIControlEventTouchUpInside];

- (void)objectClicked:(id)vSender
{
}

objectClicked方法没有被调用。查了下,addSubView等都没问题。突然想到父类是UIView,frame没有设定过。

问题解决:
设定frame:self.frame=CGRectMake(0,0,768,961);

一切安逸了。