在我的小iPad应用程序中,我有一个使用观察者的"切换语言"功能.每个视图控制器在其期间向我的观察者注册viewDidLoad:.
- (void)viewDidLoad
{
[super viewDidLoad];
[observer registerObject:self];
}
Run Code Online (Sandbox Code Playgroud)
当用户点击"更改语言"按钮时,新语言将存储在我的模型中,并通知观察者并updateUi:在其注册对象上调用选择器.
这非常有效,除了我在TabBarController中有视图控制器.这是因为当标签栏加载时,它会从其子控制器中获取选项卡图标而不初始化视图,因此viewDidLoad:不会调用,因此这些视图控制器不会收到语言更改通知.因此,我将registerObject:调用移到了init方法中.
回来我viewDidLoad:以前和我的观察员一起注册时,我常常viewDidUnload:取消注册.由于我现在正在注册init,因此取消注册是很有意义的dealloc.
但这是我的问题.我写的时候:
- (void) dealloc
{
[observer unregisterObject:self];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ARC禁止发送'dealloc'的显式消息
因为我需要打电话[super dealloc]来确保超级班级正常清理,但ARC禁止这样做,我现在卡住了.当我的物体死亡时,还有另一种获取信息的方法吗?
我已经看了几个关于这个的SO帖子:我想通过添加叠加来使当前背景图像变暗.
#header1 {
background: url("http://lorempixel.com/image_output/cats-q-c-640-480-10.jpg");
background-position:center center;
position: relative;
background-size: cover;
padding-bottom:5em;
}
.overlay {
background-color: rgba(0, 0, 0, 0.7);
top: 0;
left: 0;
width: 100%;
height: 100%;
position: relative;
z-index: 1;
}Run Code Online (Sandbox Code Playgroud)
<div class="header">
<div class="overlay">
<div class="jumbotron" id="header1">
<h1>Hello</h1>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
也许我不明白如何使用z-index,或者我在这里遗漏了一些东西.用于着色的较暗背景未显示出来.有什么指针吗?
我想在iPhone上使用Lua.在Mac OS X上,在普通(非iOS)Cocoa应用程序中,我使用了以下代码:
lua_State* l;
l = lua_open();
luaL_openlibs(l);
luaL_loadstring(l, "print(\"Hi from Lua\");");
lua_pcall(l, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
我从lua.org/ftp下载了Lua 5.1.4并将其编译为Mac OS X.在Xcode项目中,我使用"添加现有框架"进行添加,liblua.a并使用"添加现有文件"添加include目录.
这按预期工作,并打印字符串:"来自Lua".当我在iOS项目中尝试相同的事情时,它会给出错误:
"_luaL_newstate", referenced from:
_main in main.o
more of the same thing...
symbol(s) not found
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
似乎.a文件没有链接到iPhone应用程序.有人知道如何使这项工作?
(顺便说一句,我真的不在乎苹果可能不接受我的应用程序,如果它有Lua.)
我需要使用动态变化的图像来实现网格视图.
大多数时候,我使用a UITableView创建一个网格,但如果我有大量的图像,我会遇到内存问题.
在iOS 6中,UICollectionView添加了,但我以前从未使用过它.
在制作网格视图时使用哪些"最佳实践"和视图子类,以便我没有内存问题?
我尝试在高级优化模式下将以下JavaScript代码放入Closure Compiler Web界面:
function f(some_object) {
if (some_object.foo == 1) {
console.log(some_object.bar);
} else {
alert(some_object.bar);
}
}
var my_object = {foo: 1, bar: 2};
f(my_object);
Run Code Online (Sandbox Code Playgroud)
它生成了以下编译代码:
var a = {b:1, a:2};
1 == a.b ? console.log(a.a) : alert(a.a);
Run Code Online (Sandbox Code Playgroud)
但是,当我将编译后的代码放回Closure Compiler时,它设法生成了更短的版本:
console.log(2);
Run Code Online (Sandbox Code Playgroud)
这是否意味着我应该在我的代码上多次运行Closure Compiler以确保我能够获得最佳的优化?这样做有什么潜在的问题吗?
我想将用户提供的日期转换为自1970年以来的秒值.
例如,如果我的应用程序提供了日期,5-MAY-2011 00:00:00 +0000那么我想要时间戳1304553600(该日期与1970年1月1日之间的秒数).
我正在使用一个静态网站生成器,希望同时支持反应性JavaScript交互和标准的“将页面加载到浏览器中”超链接。在我看来,像斯维尔特这样的东西可能更适合这个;我可以使用服务器端渲染支持为所有页面生成HTML,然后可以编译和附带JavaScript组件hydratable: true以支持动态功能。
我想到的这种方法的一个问题是,我项目的大多数组件都是完全静态的内容:只有HTML和超链接,没有任何状态或事件处理程序,除非为新生成HTML文件,否则我不会更改道具。不同的页面。如果我天真地生成JavaScript以在页面加载时合并所有这些组件,那么我最终可能会得到比实际需要的包更大的包(以及在运行时完成的更多工作)。
Svelte是否提供任何方法来优化这种情况?我可以以某种方式检查某个组件是否纯粹是其道具的功能,以便在不需要时避免为其补水吗?还是编译器足够聪明才能为我做到这一点?
ios ×2
iphone ×2
javascript ×2
cocoa-touch ×1
css ×1
dealloc ×1
html ×1
ios4 ×1
lua ×1
macos ×1
nsdate ×1
objective-c ×1
svelte ×1
xcode ×1