NSDictionary读plist文件顺序问题

问题描述
这些天在做AD,NSDictionar读取出来的顺序不是plist文件中的顺序。

问题分析
试了各种库和方法,无效,网上搜了一些不算解决办法的方法 。

问题解决
(1) Keep an array of keys along with the dictionary. Then loop through the array and use the keys to get the values. (You'll have to add your own checks to keep the same key from appearing in the array twice.)
1,简单说来就是,把nsdictionary的所有key组成的nsarray按自己的要求排序,然后根据这个key组成的array来获取对应的value的array。key的array不要扔掉,每次要按顺序获取值的时候都需要它。

(2)You could keep an array of custom objects, one custom object for each pair (give the object .key and .value properites) . That's a very object-oriented way, but you lose the ability to easily find the value for a key (you have to loop through the array.)
2,不直接用nsdictionary,而是用一个nsarray,里面每个object都是一个只有一对key-value的nsdictionary。这个方法的缺点是,找某个value或者key会变得很麻烦,需要遍历。

(3)You could keep two arrays of strings, one for keys and one for values.
to find a value for a key, you just use
keyIndex = [myKeys indexOfObject: keyIWant];
keyValue = [myValues objectAtIndex: keyIndex];
3,不用nsdictionary,而是用两个对应的nsarray。相互调用,分别做key和value。

PV3D中removeChild内存泄露问题

问题描述
今天cailven用pv3d做Parkroyal Mt demo的时候一直很卡,经过他反复测试,发现是因为里面反复使用了pv3d内建的removeChild()方法。一开始认为是贴图无法被清空造成的,后来他改成了线框贴图,依然很卡。
问题分析
他的代码是这样的。
var agency:DisplayObject3D=new DisplayObject3D();
agency.removeChild(beforetarget);
scene.addChild(beforetarget);
scene.removeChild(nowtarget);
agency.addChild(nowtarget);
beforetarget=nowtarget;
他一开始以为是贴图信息无法清楚造成的,后来把材质改成了线框去跑,依然卡的不行,一打开时候有27fps,这段代码运行个20多遍在线框的情况下依然变成了5fps。
但是我的项目要求又必须得大量使用加载入容器,然后移除到场景的方法。
现在确定就是这段代码惹得祸,只要不removeChild,不addChild,程序可以一直维持27fps,一用就开始越来越卡。
问题解决
因为pv3d的内建removeChild有bug不完善,所以他跳过了这个步骤,直接使用了代码:
var agency:DisplayObject3D=new DisplayObject3D();
agency=nowtarget;
直接用agncy指过去,运行下来确实不卡了。
(感谢Cailven提供)

Mac系统显示和隐藏文件

苹果Mac OS X操作系统下,隐藏文件是否显示有很多种设置方法,最简单的要算在Mac终端输入命令。显示/隐藏Mac隐藏文件命令如下(注意其中的空格):

显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true

隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false

然后重启Finder,运行命令:killall Finder

删除当前目录下.svn目录:find . -name ".svn" | xargs rm -Rf