所以我知道AngularJS放弃了对IE8的支持.我想知道,这是否意味着他们不会简单地在IE8中测试,或者他们是否引入了一些在IE8中突破的功能.
有没有人真的成功在IE8上设置Angular 1.3+应用程序?需要什么样的方法/垫片(modernir,es5-shims,respond.js,其他?)
我知道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) 用法:
<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"),我正在改变它,然后再次被替换?我想了解这里的循环.这是因为还有一些额外的编译或摘要周期,并再次重新计算所有隔离的范围值?我认为一旦设置,像这样传递的变量(@,只是指令中的字符串)将保持不变?
有没有什么办法来指令中钩到了一下,在这之后的字符串变量不会被替换,还是会总是这样的工作与每一个消化或诸如此类的东西,而且我被迫使用$看?
我几个小时都在努力设置适当的缩小,实际上重写了网址.我已经使用了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) 有人能够在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
是的,是的,另一种。我知道所有的一般要点,什么是什么,如何生成等。
只是有一些让我烦恼的东西。基本上,证书和配置文件的关系是什么?我没有找到正确的答案。我问的原因是我一直认为因为当我们创建配置文件时,我们将它与开发(用于开发配置)或分发(用于临时和应用商店配置)证书相匹配,这意味着配置文件与证书相关联.
但是最近,在使用 Flash Builder 编译我的 Flex 应用程序时,我注意到情况并非如此,或者中间发生了一些我不明白的事情。基本上,我注意到我可以选择我的开发证书并使用临时配置,并且应用程序编译良好并且运行良好。我一直认为我不能这样做,因为我只能使用带有分发证书的临时配置。如果临时配置与分发证书相关联,这怎么可能?我不认为它真的与 FB 相关,因为最后我通过 iTunes 和 iOS 设备安装了该应用程序,它仍然有效,所以它一定是 Apple 的东西。
实际上,只要我不为 AppStore 分发,我就可以选择我想要的任何证书/配置文件组合,只要 appid 和 udids 正常,应用程序仍然可以在设备上编译和运行. 显然,adhoc 和 appstore 配置禁用了进程附件(调试)并针对不同的服务服务器进行推送等,但除此之外,还可以。为什么在 iOS Provisioning 门户中有这种可见的匹配,某些配置文件属于证书?
这是否意味着证书只是分离关注点的方式(开发人员与公司/分销商)。在 iOS Provisioning Portal 中,只有 Team Agent 可以创建分发证书和 adhoc 配置文件,但是一旦生成,Agent 似乎可以将 adhoc 配置文件处理给开发人员,他可以使用他的开发证书对其进行签名。
我在正确捆绑所有东西时遇到问题,但仍然有意义。互联网,求助!
angularjs ×2
ios ×2
air ×1
apache-flex ×1
certificate ×1
css ×1
directive ×1
gruntjs ×1
iphone ×1
javascript ×1
memory ×1
minify ×1
mobile ×1
objective-c ×1
orientation ×1
provisioning ×1
scope ×1