小编rat*_*kin的帖子

AngularJS 1.3和IE8

所以我知道AngularJS放弃了对IE8的支持.我想知道,这是否意味着他们不会简单地在IE8中测试,或者他们是否引入了一些在IE8中突破的功能.

有没有人真的成功在IE8上设置Angular 1.3+应用程序?需要什么样的方法/垫片(modernir,es5-shims,respond.js,其他?)

internet-explorer-8 angularjs

12
推荐指数
2
解决办法
9473
查看次数

Objective-C内存管理,xml解析器和其他非平凡的例子

我知道Cocoa中关于内存管理的基本原则(保留计数,自动释放池等),但是一旦你超越了简单的保留/释放,它就会变得更加混乱.我找不到合适的答案,因为大多数教程都涵盖了简单的场景.我想问一下如何编写代码并避免泄漏的最佳实践.


第一个问题 - 迭代和临时任务:

for (id object in objectArray) {    
     Model *currentItem = object;
    /* do something with currentItem */
    [currentItem release];
}
Run Code Online (Sandbox Code Playgroud)

如果我删除最后一行中的版本,代码将正常工作,但有泄漏.这里的规则是什么?该对象已经存在于objectArray中.我直接分配它,以获得类型.我应该以其他方式这样做吗?这个赋值是否会增加currentItem的retainCount?(它是否类似[[alloc] initWithObject]?)如何知道这个赋值(对象)是否自动释放?


第二个问题 - 即时保留:

Model *model = [unarchiver decodeObjectForKey:@"ARCHIVED_MODEL_OBJECT"];
// it has to be here, because (I was told) unarchiver will return autorelease object    
[model retain]; 
label.text = model.data;
Run Code Online (Sandbox Code Playgroud)

有人知道这个特殊的方法是如此有效,我需要立即调用保留返回值,否则我将在下一个任务中遇到null?我在文档中找不到这样的东西.根据保留/释放规则,我希望decodeObjectForKey返回autorelased对象,但它需要一些时间,直到控件返回到app并且池声明要释放的模型对象.对此有什么规定吗?我该如何搜索?


第三个问题 - 自动释放和传递变量:

- (IBAction) loadXMLButtonClicked:(id) sender {
    objectArray = [self loadData]; // 1 - objectArray is instance var
    NSArray *objectArray = [self loadData]; // 2 …
Run Code Online (Sandbox Code Playgroud)

memory iphone objective-c

7
推荐指数
1
解决办法
2089
查看次数

AngularJS会覆盖隔离的指令范围

用法:

<my-directive my-var="true"></my-directive>
Run Code Online (Sandbox Code Playgroud)

指示:

app.directive('myDirective', [
    function () {
        var definition = {
            restrict: "E",
            replace: false,
            transclude: false,
            scope: {
                myVar: '@',
            },
            controller: ['$scope', function($scope) {
                console.log($scope.myVar); // "true"
                $scope.myVar = "false";
                console.log($scope.myVar); // "false"

                setTimeout(function() {
                    console.log($scope.myVar); // "true" (!)
                }, 100);
            }]
        };

        return definition;
    }
]);
Run Code Online (Sandbox Code Playgroud)

控制台输出

"true"
"false"
"true"
Run Code Online (Sandbox Code Playgroud)

这里到底发生了什么?变量以字符串形式传递("true"),我正在改变它,然后再次被替换?我想了解这里的循环.这是因为还有一些额外的编译或摘要周期,并再次重新计算所有隔离的范围值?我认为一旦设置,像这样传递的变量(@,只是指令中的字符串)将保持不变?

有没有什么办法来指令中钩到了一下,在这之后的字符串变量不会被替换,还是会总是这样的工作与每一个消化或诸如此类的东西,而且我被迫使用$看?

scope directive angularjs

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

如何正确缩小/组合Web项目中的CSS/JS与url重写

我几个小时都在努力设置适当的缩小,实际上重写了网址.我已经使用了useref和usemin,他们可以很好地扫描html,聚合所有JS和CSS并输出到一个文件中.但是,对于我的生活,我不能让url重写正常工作.我的结构很简单:

\root
   index.html
   application.css       // minified
   application.js        // minified
   \vendor
       \bootstrap
           \fonts        // font files here
           bootstrap.css // pre-minified 
Run Code Online (Sandbox Code Playgroud)

bootstrap.css通过使用相对url引用字体文件 - font/bootstrap_font.ttf 当bootstrap被缩小时,它作为应用程序css的一部分登陆,现在在我的root中,因此路径将从root指向/font/bootstrap_font.ttf.原始目录层次结构保持不变,所以我基本上希望将此url重写为/vendor/bootstrap/font/bootstrap_font.ttf

哦,为什么cssmin任务不接受多个文件?

更新 这是我当前的grunt文件:

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        useminPrepare: {
            html: 'web/public/index.html',
            options: {
                dest: 'web/public-dist'
            }
        },
        usemin: {
            html: 'web/public-dist/index.html',
        },
        copy: {
            all: {
                files: [{
                    expand: true,
                    cwd: 'web/public/',
                    src: ['**'],
                    dest: 'web/public-dist/'
                }]
            },
            resources: {
                files: [{
                    expand: true,
                    cwd: 'web/public/',
                    src: ['**/*.*', '!**/*.js', '!**/*.css', …
Run Code Online (Sandbox Code Playgroud)

javascript css minify gruntjs

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

正确防止Flex Mobile应用程序中的方向更改

有人能够在Flex SDK 4.6中实际使其正常工作吗?

这是一个简短的片段:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        addedToStage="onAddedToStage(event)"
        title="Title">
    <fx:Script>
        <![CDATA[  
            private function onAddedToStage(event:Event):void { 
                if (stage.autoOrients) {
                    stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, orientationChanging, false, 0, true);
                }
            }

            private function orientationChanging(event:StageOrientationEvent):void {
                if (event.afterOrientation == StageOrientation.DEFAULT || event.afterOrientation == StageOrientation.UPSIDE_DOWN) {
                    event.preventDefault(); 
                }     
            } 
        ]]>
    </fx:Script>
</s:View>
Run Code Online (Sandbox Code Playgroud)

我想要实现的是在两个方向上支持横向模式,因此如果用户将设备旋转180度,屏幕也应该旋转.但是,当用户将设备旋转到纵向方向之一时,根本不应该执行任何操作.相反,我看到导航器操作栏的宽度更改,有时纵向方向的内容,所以显然阻止事件是不够的.我正在使用Adobe建议的"官方"方式,但问题是它运行得不好.当然,舞台不会改变,但似乎在导航器中有一些东西在射击,因为你可以看到动作栏的宽度在变化.

我在处理程序方法中明确地将layoutbounds设置为固定宽度取得了一些成功 - 这可以防止更改操作栏宽度,但它只是一个临时解决方案 - 如果视图是转换的主题,或者其他一些重绘 - 它将再次呈现为错误大小.好像有下面的东西告诉它它处于纵向模式,即使我试图阻止它.

在你引爆一些愚蠢的想法之前,比如"autoOrient = false",不要.这显然不是解决这个问题的方法.显然这是Flex SDK的一个错误 - 有没有人找到解决方法或稳定的解决方法?

编辑:显然其他人遇到了类似的问题:
- http://forums.adobe.com/message/3969531(主题是关于别的东西,但阅读魔术机器人的评论)
- http://forums.adobe.com/message/4130972

apache-flex air mobile orientation ios

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

iOS 证书和配置文件关系

是的,是的,另一种。我知道所有的一般要点,什么是什么,如何生成等。

只是有一些让我烦恼的东西。基本上,证书和配置文件的关系是什么?我没有找到正确的答案。我问的原因是我一直认为因为当我们创建配置文件时,我们将它与开发(用于开发配置)或分发(用于临时和应用商店配置)证书相匹配,这意味着配置文件与证书相关联.

但是最近,在使用 Flash Builder 编译我的 Flex 应用程序时,我注意到情况并非如此,或者中间发生了一些我不明白的事情。基本上,我注意到我可以选择我的开发证书并使用临时配置,并且应用程序编译良好并且运行良好。我一直认为我不能这样做,因为我只能使用带有分发证书的临时配置。如果临时配置与分发证书相关联,这怎么可能?我不认为它真的与 FB 相关,因为最后我通过 iTunes 和 iOS 设备安装了该应用程序,它仍然有效,所以它一定是 Apple 的东西。

实际上,只要我不为 AppStore 分发,我就可以选择我想要的任何证书/配置文件组合,只要 appid 和 udids 正常,应用程序仍然可以在设备上编译和运行. 显然,adhoc 和 appstore 配置禁用了进程附件(调试)并针对不同的服务服务器进行推送等,但除此之外,还可以。为什么在 iOS Provisioning 门户中有这种可见的匹配,某些配置文件属于证书?

这是否意味着证书只是分离关注点的方式(开发人员与公司/分销商)。在 iOS Provisioning Portal 中,只有 Team Agent 可以创建分发证书和 adhoc 配置文件,但是一旦生成,Agent 似乎可以将 adhoc 配置文件处理给开发人员,他可以使用他的开发证书对其进行签名。

我在正确捆绑所有东西时遇到问题,但仍然有意义。互联网,求助!

certificate provisioning flash-builder ios

3
推荐指数
1
解决办法
2004
查看次数