在基于导航的应用程序中,我在我的应用程序委托中初始化一个数组而不使用self.当在RootViewController的cellForRowAtIndexPath:中访问时,所有数组对象都在那里,我可以看到它是一个NSCFArray.一旦应用程序加载,我单击一个表格单元格和didSelectRowAtIndexPath :,同一个数组有一个NSArray类型,没有对象,我得到一个EXC_ BAD_ACCESS错误.如果我在app委托中使用self前面的数组,一切都很好.这是为什么?
以下是app delegate .h文件:
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UINavigationController *navigationController;
NSMutableDictionary *aDict;
NSArray *aArray;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@property (nonatomic, retain) NSArray *aArray;
@property (nonatomic, retain) NSArray *aDict
@end
Run Code Online (Sandbox Code Playgroud)
数组和字典在.m文件中合成.我在app delegate .m文件中初始化数组,如下所示:
aArray = [self.aDict allKeys];
Run Code Online (Sandbox Code Playgroud)
在两个根控制器方法中都可以这样访问它:
theDelegate = [[UIApplication sharedApplication] delegate];
[theDelegate.aArray objectAtIndex:2];
Run Code Online (Sandbox Code Playgroud)
只有当我到达didSelectRowAtIndexPath时才会失败.在app delegate中执行此操作可使一切正常:
self.aArray = [self.aDict allKeys];
Run Code Online (Sandbox Code Playgroud)
我没有对cellForRowAtIndexPath:和didSelectRowAtIndexPath:之间的myArray做任何事情.为什么在第一种情况下失败?
stackoverflow.com上有很多关于什么是最好的iPhone游戏平台/引擎的讨论.我的问题不一定是什么是最好的,但对于有经验的iPhone开发者来说最好的是什么,但对游戏设计没有经验.这也将是一个独立项目加上一个图形设计师.考虑一下我将在我的日常工作中全职工作,并需要支持许多其他iPhone应用程序.换句话说,设计游戏将是一个非常兼职的项目,但需要在2 - 4个月内完成(?).加速时间需要很快.我想在开始时构建2D,然后转到3D.
我倾向于Unity 3D,因为它有很多文档和帮助.从我所看到的,iPhone基本版本是399美元,你可以免费获得IDE.谁能确认一下?
Unity3D适用于3D,但我读过你仍然可以做2D.我试图找出那里涉及的内容.Unity3D的一个缺点是8-15秒的Unity闪屏.我也读到这对于价格较高的版本并没有好转.但我认为这是为了方便使用更简单的框架而付出的代价.
Cocos2d是一个很棒的框架,免费但缺乏文档.它还需要很长的时间来学习它的框架并选择合适的物理引擎.我认为这条路线不切实际.我可以看到在一个很长的时间线上学习它作为一个侧面项目但是你吃得很快就把你的游戏推向了门外.如果我和Unity合作,我可能完全放弃Cocos2d,因为我会对Unity投入如此多.
我对Unity的推理听起来可行吗?
- -编辑 - -
基于一些评论,这里是我最初提到的游戏类型:类似于Zomebieville的2D射击游戏,但很可能没有它的大型功能集.
我主要是写iPhone应用程序,但我熟悉一些桌面Mac创作.我需要创建一个包含几个wav声音文件(包含在包中)的Cocoa应用程序.我不希望用户查看.app文件的包内容,然后从中提取所有声音文件.有没有办法保护这些文件?
我正在使用iOS 4 + MPMoviePlayerController的第一个答案
尝试MPMoviePlayerController去玩.在模拟器(带iOS4的iPhone设备)中,我听到声音但没有视频.在设备(iPhone 3GS和iOS4)上,我什么都没得到.这是我的代码:
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:moviePath]];
moviePlayer.movieControlMode = MPMovieControlModeDefault;
if ([moviePlayer respondsToSelector:@selector(view)]) {
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
[moviePlayer.view setFrame:self.view.bounds];
[self.view addSubview:moviePlayer.view];
}
[moviePlayer play];
Run Code Online (Sandbox Code Playgroud)
我有什么想法我做错了吗?
我有一个通用列表,并已完成
mylist.Sort(Comparison<TypeA>(delegate(TypeA a, TypeA b)
{ return a.Text.CompareTo(b.Text)) }
Run Code Online (Sandbox Code Playgroud)
经过上述运行,我做到了mylist.Add(someObject).它的Text属性以"T"开头.列表中还有一个以项目开头的项目"V".它不是最后添加的someObject,而是在项目开始之前"V".这让我觉得这种情况继续适用.是这样的吗?
如果是这样,我如何添加这个新项目作为最后一个?
我的问题与此类似:使用Linq查找列表中的连续项.除此之外,我想得到最后一个没有间隙的项目.例如:
2, 4, 7, 8
Run Code Online (Sandbox Code Playgroud)
产量
7,8
Run Code Online (Sandbox Code Playgroud)
另一个例子:
4,5,8,10,11,12
Run Code Online (Sandbox Code Playgroud)
产量
10,11,12
Run Code Online (Sandbox Code Playgroud)
怎么办?
我在下面的例子中做错了什么?在这种情况下,jquery代码需要超过页脚div.
<html>
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
</head>
<body>
<script>
#(document).ready(function(){
$('#footer').hide();
});
</script>
<div id="footer">testing footer</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我有两个媒体查询,现在正在做同样的事情.如何将这些组合成一个查找两个宽度的查询?
@media (max-width : 480px) {...}
@media (max-width : 320px) {...}
Run Code Online (Sandbox Code Playgroud) 我想创建一个临时类,而不必构建具体类。工作流程将如下所示:
List<object> myList = new List<object>();
myList.Add(new() {prop1 = 33, prop2 = "test"});
myList.Add(new() {prop1 = 35, prop2 = "test2"});
Run Code Online (Sandbox Code Playgroud)
//循环遍历myList,访问每个列表项的两个属性
有什么想法可以完成类似的事情吗?
我将一个简单的文本文件发布到asp.net MVC应用程序.当我使用下面的表单发布时,表单参数不为null.但文件是.我有什么想法我做错了吗?
<form method=post action="http://localhost/Home/ProcessIt"
enctype="application/x-www-form-urlencoded">
<input type=file id="thefile" name="thefile" />
<input type="submit" name="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
在asp.net mvc应用程序中:
[HttpPost]
public ActionResult ProcessIt(FormCollection thefile)
{
HttpPostedFileBase file = Request.Files["thefile"];
...
}
Run Code Online (Sandbox Code Playgroud) .net ×3
c# ×3
iphone ×3
objective-c ×2
xcode ×2
asp.net-mvc ×1
c#-4.0 ×1
cocoa ×1
cocoa-touch ×1
css ×1
html ×1
ios4 ×1
javascript ×1
jquery ×1
linq ×1
macos ×1
sorting ×1