我仍在努力应对承诺,但感谢社区在这里取得了一些进展.
我有一个简单的JS函数来查询Parse数据库.它应该返回结果数组,但显然由于查询的异步性质(因此是promises),函数在结果之前返回,留下一个未定义的数组.
我需要做些什么来使这个函数等待承诺的结果?
这是我的代码:
function resultsByName(name)
{
var Card = Parse.Object.extend("Card");
var query = new Parse.Query(Card);
query.equalTo("name", name.toString());
var resultsArray = [];
var promise = query.find({
success: function(results) {
// results is an array of Parse.Object.
console.log(results);
//resultsArray = results;
return results;
},
error: function(error) {
// error is an instance of Parse.Error.
console.log("Error");
}
});
}
Run Code Online (Sandbox Code Playgroud) 我有一个UIToolbar界面生成器,我注意到它被锁定为44px高.当然我想把它做大.
Apple是否允许调整此控件的大小?如果是这样,我该怎么做呢?
我一直对RPG(角色扮演游戏)中涉及的数据结构感兴趣.特别是,我对基于对话和事件的行为感到好奇.
例如:如果我在游戏中的第x点接近NPC ,使用项目y和任务z,我将如何计算出NPC需要说的内容?分支对话和响应玩家输入似乎与定义脚本一样微不足道,并且用户输入使脚本阅读器跳转到脚本中的特定行,该行具有相应的响应行集(非常类似于选择自己的冒险)
然而,如果玩家拥有某些物品并且完成某些任务似乎真的破坏了这个基于脚本的模型,那么将逻辑联系起来.
我正在寻找如何处理所有这些对话和逻辑的想法(不一定是编程语言示例),并将其分离出来,以便添加新的分支内容非常容易,而无需深入研究太多代码.
这真是一个悬而未决的问题.我不相信有一个单一的解决方案,但是用一些想法来推动这个问题是件好事.作为一名设计师而非程序员,我总是对分离内容和代码的方式感兴趣.
我注意到在OS 3.1中你可以用图像选择器添加叠加视图
cameraOverlayView
Run Code Online (Sandbox Code Playgroud)
但是,我还注意到,通过此方法添加视图还会显示UIImagePicker显示的整个时间的视图,当我只想在预览阶段显示它时.
有没有办法让这个只在预览期间发生?在开放式快门动画期间,或者询问您是否要使用图像或重拍时,我不希望它出现在那里.
我已经使用泄漏工具清除了我的泄漏应用程序,但我仍然注意到,当我切换视图时,objectalloc工具会跳转分配的对象数量和占用空间.
我特别看到了很多:
GeneralBlock-16主要负责调用者NSLogv
和
GeneralBlock-0主要负责QuartzCore
关于我可以做些什么来进一步调试这个的提示?
谢谢!
我已经提到了这个非常好的参考:https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more但我有一些非常严重的问题.我拍照后,收到内存警告.这是我拍的第一张照片,而不是第二张或第三张照片.
我想知道是不是因为我从应用程序目录中加载了几个小jpeg到滚动视图中.我能想到的唯一解决方案是在UIImagePicker处于活动状态时卸载主视图中的所有内容,然后重新加载所有内容,但我不确定这是正确的解决方案,我不知道该怎么做.
UIImagePicker会占用那么多内存吗?我甚至没有处理或显示它所需的图像.即使我把图像丢掉,我也会得到记忆警告.
任何帮助赞赏.
我创建了一个简单的iPhone应用程序,它有两个.xib文件.在应用程序中的app委托确实完成启动我通过调用显示第一个.xib文件:
[window addSubview:myView];
Run Code Online (Sandbox Code Playgroud)
我在IBAction上为UIButton做同样的事情,将视图更改为myView2.
我发现,当我运行应用程序时,对于两个视图都有一个大约10像素的白条.我还注意到按钮偏移了10个像素(大约).所以我得到的结论是,视图从屏幕上的10个像素开始显示并且结束时间短.
知道为什么会这样,我如何解决它,或者我如何进一步调试正在发生的事情?我检查了我的.xib文件,他们正在消耗设备的整个高度(即没有白条),所以这看起来是XCode内部的一个问题.
编辑:我已经把问题缩小了一点.我正在使用两种方法来加载子视图.当我加载第一个视图里面的applicationDidFinishLaunching一切都很好.但是,如果我更换了两条消息window与[self originalView]方法,那么一切都有点失控.
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//[self originalView]; <- I want to use this instead of the following two lines
// Override point for customization after app launch
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
-(void)endView{
endV = [[EndViewController alloc] initWithNibName:@"EndView" bundle:nil];
[window removeFromSuperview];
[window addSubview:endV.view];
}
-(void)originalView{
viewController = [[MyAppViewController alloc] init];
[window removeFromSuperview];
[window addSubview:viewController.view];
}
Run Code Online (Sandbox Code Playgroud)
从我所看到的,我总是调用相同的代码行,无论它是在内部applicationDidFinishLaunching还是在内部,[self originalView]但它似乎window变成了一个不同的对象.
我的应用程序中有一个视图可以完成所有操作,我喜欢这样.然而问题是它正在实施5或6个不同的代表,这看起来有点混乱.
我的问题是,视图控制器是否必须实现所有代理?或者有什么方法可以将代码分成不同的文件(无需进行重大的重组或重写)?
这是我正在实施的所有代表:
@interface MyView : UIViewController <UIScrollViewDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIActionSheetDelegate, MFMailComposeViewControllerDelegate>
Run Code Online (Sandbox Code Playgroud) 我想在iPhone上用Cocos2D制作一个RPG.我做了很多研究,我非常喜欢Cocos2D用于场景的模型.我可以实例化一个场景,设置我的角色等等,这一切都非常好......我遇到的问题是构建一个游戏循环并将代码与场景分开.
例如,我在哪里放置能够在多个场景中保持游戏状态的代码?我是否将那些在场景类中的场景中被触发的事件的代码放入?或者我有一些其他类将init代码与逻辑分开?
另外,我已经阅读了很多提及改变场景的教程,但是我没有读过任何关于更新场景的内容 - 从用户那里获取输入并基于此更新显示.这是发生在场景对象中还是在单独的显示引擎类型类中.
提前致谢!
嘿,我正在寻找有关代表的有用资源.据我所知,代理位于后台并在某些事情发生时接收消息 - 例如,选择了一个表格单元格,或者检索了来自Web上的连接的数据.
我特别想知道的是如何使用具有多个对象的委托.据我所知,为对象(例如表格单元格)指定相同的委托将导致同时为两个单元格调用相同的事件.有没有相当于为特定对象实例化委托的东西?
提前致谢!
iphone ×8
xcode ×3
camera ×2
class-design ×2
delegates ×2
objective-c ×2
debugging ×1
instruments ×1
javascript ×1
memory ×1
memory-leaks ×1
overlay ×1
promise ×1
uitoolbar ×1
uiview ×1
window ×1
xib ×1