小编God*_*her的帖子

podspec依赖项和Podfile pod声明之间的区别

我有一个cocoapod的项目(我们称之为"Main"),它与另一个cocoapod有一个依赖关系(我们称之为"Util").

我可以通过"pod'Util'"在Main的Podfile中添加Util,并通过"s.dependency'Util'"将其指定为podspec中的依赖项.

只要至少写入其中一个,我的pod测试项目运行正常(如果没有podspec中的依赖项,运行"pod lib lint"命令会返回错误)

在Podfile中指定pod可以让我更精确地了解我希望版本的准确程度,甚至允许我使用:head作为目标.但是,依赖性似乎更加有限,需要标签.

我想知道这两种方法之间的区别,以及当一个pod依赖于另一个pod时是否有好的做法(特别是因为我最终想要将Main用作其他项目的pod)

ios cocoapods podspec

9
推荐指数
1
解决办法
1958
查看次数

AS3将函数作为参数传递会产生内存泄漏

我有一个函数,它将另一个函数作为参数.像这样的东西:

public function onHits(target : Shape, callback : Function) : void
Run Code Online (Sandbox Code Playgroud)

我通过传递一个成员函数作为参数来使用它,只要传递的目标命中某个东西就应该调用它.该函数被一次调用多次.所以它用于做:

//code...
CollisionManager.onHits(myShape, onHitCB);
//code...
Run Code Online (Sandbox Code Playgroud)

点击功能:

public function onHitCB(hitObject : *) : void 
{
    //removed all code to test this problem
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我有内存泄漏.我已经将问题与onHits方法隔离开来,并已注释掉其他所有内容.onHits是一个空方法,里面没有代码,onHitCB也是空的.如果我注释掉对onHits的调用,则没有内存泄漏,如果我传递null而不是onHitCB,则没有内存泄漏.

因此,当我将HitCB作为参数传递给问题时,显然也是如此.所以我认为这可能是因为Flash分配了一些内存来创建Function指针并且不释放它但是我在调​​试模式中每一帧调用System.gc()并且泄漏仍然存在.这意味着这可能是SDK中的错误,或者我没有做正确的事情.

通过保持一个指向我在对象的构造函数中指定的函数的变量,我找到了一个奇怪的解决方法:

private var func : Function;

public function MyObject() 
{
    func = onHitCB;
}
Run Code Online (Sandbox Code Playgroud)

即使我仍然将HitCB作为参数传递,这也将清除内存泄漏.那么这意味着获取onHitCB不是"getter"函数,而是导致内存泄漏的其他因素?

我很困惑.这怎么会导致内存泄漏:

public function MyObject() 
{
}

public function update() : void
{
    CollisionManager.onHits(myShape, onHitCB);//empty function
}

public function onHitCB(hitObject : *) : void 
{
    //removed all code to test …
Run Code Online (Sandbox Code Playgroud)

flash memory-leaks function-pointers actionscript-3

8
推荐指数
1
解决办法
5101
查看次数

Flash右键单击的动作与左键单击不同

我刚刚更新到flash player 11.2,它允许监听MouseEvent.RIGHT_MOUSE_UP和MouseEvent.RIGHT_MOUSE_DOWN.

我遇到的问题是这些事件的行为与其MOUSE_UP/MOUSE_DOWN对应物的行为不同.具体来说,无论鼠标在哪里,都会启动MOUSE_UP事件.这允许在Flash窗口外拖动,并且每当用户点击flash播放器时仍然具有完整的down - > up事件循环.

但是,RIGHT_MOUSE_UP/DOWN似乎不是这种情况.当我右键单击播放器并在播放器外部释放时,我没有得到RIGHT_MOUSE_UP事件,这意味着可以在不接收UP事件的情况下接收多个RIGHT_MOUSE_DOWN事件.

是否有一个已知的解决方法或是否有一个我必须设置的选项?

编辑:

这是一个代码示例:

stage.addEventListener(MouseEvent.MOUSE_UP,         onMouseUp);
stage.addEventListener(MouseEvent.MOUSE_DOWN,       onMouseDown);
stage.addeventListener(MouseEvent.RIGHT_MOUSE_UP,   onRightMouseUp);
stage.addeventListener(MouseEvent.RIGHT_MOUSE_DOWN, onRightMouseDown);

//...
//all callback function follow a similar format as :
private function onMouseUp(e : MouseEvent) : void
{
    leftClick_ = false;//signaling that leftClick is not pressed
}
Run Code Online (Sandbox Code Playgroud)

flash actionscript-3 mouseevent

6
推荐指数
1
解决办法
2864
查看次数

Cocoapods仅为Debug指定podspec xcconfig值

我正在使用cocoapods,并希望使用特定于调试模式的xcconfig参数在pod的podspec中指定一个值.

目前,使用:

s.xcconfig = { "GCC_PREPROCESSOR_DEFINITIONS" => "MY_DEFINE=1" }
Run Code Online (Sandbox Code Playgroud)

将设置Debug和Release模式的值.还尝试使用:

s.xcconfig = { "GCC_PREPROCESSOR_DEFINITIONS[config=Debug]" => "MY_DEFINE=1" }
Run Code Online (Sandbox Code Playgroud)

但是,虽然这将它设置在pod的预处理器宏中,但在执行代码期间似乎没有注册,这与不使用[config = Debug]标记时不同.有没有办法将其限制为仅调试模式?

ios cocoapods podspec

5
推荐指数
1
解决办法
1879
查看次数

AS3知道函数需要多少个参数

有没有办法知道Function的一个实例可以在Flash中使用多少个参数?了解这些参数是否可选也是非常有用的.

例如 :

public function foo() : void                               //would have 0 arguments
public function bar(arg1 : Boolean, arg2 : int) : void     //would have 2 arguments
public function jad(arg1 : Boolean, arg2 : int = 0) : void //would have 2 arguments with 1 being optional
Run Code Online (Sandbox Code Playgroud)

谢谢

flash function introspection actionscript-3

4
推荐指数
1
解决办法
545
查看次数