我正在创作一个iPad应用程序.应用程序中的一个屏幕非常适合使用UISplitViewController.但是,应用程序的顶级是一个主菜单,我不想使用UISplitViewController.这提出了一个问题,因为Apple说:
UISplitViewController 应该是应用程序中的顶级视图控制器,即它的视图应该作为子视图添加 UIWindow
如果使用,UISplitViewController应该在应用程序的生命周期中存在 - 即不要从UIWindow中移除其视图并将其他视图放在适当位置,反之亦然
阅读和实验后,似乎只有满足Apple要求的可行选择,而我们自己的选择是使用模态对话框.所以我们的应用程序在根级别有一个UISplitViewController(即它的视图被添加为UIWindow的子视图),为了显示我们的主菜单,我们将它作为全屏模式对话框推送到UISplitViewController上.然后通过关闭主菜单视图控制器模式对话框,我们可以实际显示我们的拆分视图.
这个策略似乎运作正常.但它引出了一些问题:
1)有没有更好的方法来构建这个,没有模态,也满足提到的所有要求?由于被推送为模态对话框,主UI出现似乎有点奇怪.(模态应该用于重点用户任务.)
2)由于我的做法,我是否有遭受应用商店拒绝的风险?根据Apple的人机界面指南,这种模态策略可能是"误用"模态对话框.但是他们给了我什么其他选择呢?无论如何,他们会知道我这样做吗?
iphone user-interface appstore-approval ipad uisplitviewcontroller
libjpeg-turbo的说明在此描述了TurboJPEG API:"此API包装了libjpeg-turbo,并提供了一个易于使用的界面,用于压缩和解压缩内存中的JPEG图像".很好,但有一些使用此API的可靠实例吗?只是想在内存中解压缩一个相当香草的jpeg.
我找到了一些比如https://github.com/erlyvideo/jpeg/blob/master/c_src/jpeg.c,它似乎使用的是TurboJPEG API,但还有更多可靠/多变的例子吗?
libjpeg-turbo的来源已有详细记录,因此确实有帮助.
在XCode 4.0中,有一个新设计的Build Settings页面.我的问题是,一旦我指定它,我就看不到如何删除设置.
示例:我已在目标级别将"版本控制系统"更改为"Apple Generic".之后我意识到我应该在项目级别设置它,所以我想删除目标级别设置.但是,我无法看到删除设置 - 您单击它并且有两个选项,这两个选项都不是默认的"未指定"空设置.点击键盘上的删除键没什么.
对于接受文本的字段也是如此 - 如果我尝试通过删除所有文本集来删除设置,它仍然显示该字段为绿色,但没有文本,并将其视为设置的存在.
昨天我将Xcode 6.1.1更新为Xcode 6.2,但在更新后,当我看到Xcode时,它仍然显示了版本6.1.1(6A2008a).知道为什么吗?
注意:我已经去了App商店并检查它,但是显示它已更新,我只能打开它.
众所周知,您可以定义新文件模板中使用的标记的值,如http://cocoadev.com/index.pl?ProjectBuilderTips中所述.
所以典型的模板如下所示:
/*
* main.m
* «PROJECTNAME»
*
* Created by «FULLUSERNAME» on «DATE».
* Copyright (c) «YEAR» «ORGANIZATIONNAME». All rights reserved.
*
*/
Run Code Online (Sandbox Code Playgroud)
现在,我知道如何定义新模板并且已经完成了.但是,我希望我的新模板在其中使用我自己的新标记,如下所示:
/*
* «ATTRIBUTIONLINE»
*/
Run Code Online (Sandbox Code Playgroud)
...我希望该标签可以在每个XCode项目的基础上定义.这可能吗?我一直在搜索,只能找到在命令行上运行某些东西的常用内容,它为所有项目定义了一个众所周知的标记.
该libjpeg的涡轮增压项目"使用SIMD指令(MMX,SSE2,NEON)加快基线JPEG压缩和解压在x86,x86-64的,而ARM系统".
Android设备空间的哪些部分支持这些说明,因此使用此库可以获得速度优势?
(我将解压缩通过NDK访问的本机代码中的jpegs.)
java-native-interface android jpeg android-ndk libjpeg-turbo
我试图用一个对象中的两个实体来过滤我的数组,就像我有一个Person对象,其中我有名字,地址,数字,电子邮件等.我试图用名称和数字过滤我的数组对象列表.如何使用NSPredicate实现这一目标?
请帮帮我,我是Maven的新手.我试图在Maven项目文件夹的不同目录中生成目标文件夹.根据我的要求,当我构建我的maven项目时,生成的war文件应放在另一个文件夹中,如C:\naresh文件夹.
这是我的代码:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<packaging>war</packaging>
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<build>
<directory>${project.basedir}/target</directory>
<outputDirectory>C:\Software\${project.basedir}/target</outputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud) 关于iPhone的编码有很多资源.其中大多数涉及"我如何做X",例如"设置导航控制器"或"从URL下载文本".一切都好又好.
我现在更感兴趣的是更简单的问题 - 如何最好地构建复杂的用户界面或应用程序,或出现的常见问题.为了说明:一本书像"从iPhone 3发展"将告诉您如何建立一个多视图 - 控制应用程序与其他视图控制器拥有的视图之间切换的顶部"切换"视图 - 控制.好吧,但你只告诉如何做到这一点,并没有什么关于可以按照问题:例如,如果我用自己的模式切换到UINavigationViewController,导航栏结束了在屏幕上得太低,因为UINavigationViewController预期成为最顶级的UIViewController(显然).此外,委托方法(例如与方向变化有关)转到顶部切换器视图控制器,不是负责当前视图的实际控制器.我已经修复了这些东西,但他们感觉像黑客让我不开心,让我觉得我错过了什么.
一个有成效的事情可能是看一些开源的iPhone项目(见这个问题).但除此之外呢?
更新
澄清:我想我所问的可以概括为"iPhone开发的食谱和陷阱".开发人员感兴趣的东西,但我见过的任何iPhone书籍都没有涉及,例如:
我正在编写一个iPad应用程序,并希望在某些时候只向用户呈现一个UISplitViewController ,Apple似乎在说我做不到.可能吗?怎么样?
Apple没有给我一种方便,全面的方式来设计我的应用程序的方式(例如字体调整或颜色).如何处理我的应用程序样式?
UIViewController方法名称中的一些不一致性使内存管理变得更容易(例如,尽管名称,viewDidUnload 与viewDidLoad 不相反).是否有一致的简单方法来整理它并使视图控制器内存管理不易出错?
当内存警告进入时,如何能够始终如一地轻松测试我的视图控制器是否正常运行?在模拟器中模拟内存警告很容易,但如果我要测试的UI正在显示(并且是一个"叶级"视图控制器),它将不会卸载其视图,因为它当前是可见的.
NB我实际上并没有在这里提出上述问题 - 我想我对他们有很好的答案! - 仅举出说明此stackoverflow问题的"好"问题示例.
日历现在可以直接导入.ics文件作为添加事件的方式.如果您的应用程序可以访问.ics文件,则应使用UIDocumentInteractionController API测试导入它们.
我正在打开一个示例.ics文件UIDocumentInteractionController并显示iOS日历应用程序,但它没有创建新的约会 - 它只显示上次使用日历应用程序时显示的内容.有没有人有幸以这种方式创建新活动?
我的UIDocumentInteractionController用法代码是:
- (void)openDocumentIn {
NSString * filePath =
[[NSBundle mainBundle]
pathForResource:@"testevent" ofType:@"ics"];
self.documentController =
[UIDocumentInteractionController
interactionControllerWithURL:[NSURL fileURLWithPath:filePath]];
self.documentController.delegate = self;
[self.documentController presentOpenInMenuFromRect:CGRectZero
inView:self.view
animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
和我的示例.ics文件:
BEGIN:VCALENDAR
VERSION:1.0
BEGIN:VEVENT
DTSTART:20120411T090000
DTEND:20120411T100000
SUMMARY:Crazy party
LOCATION:Windsor Bouncy Castle
DESCRIPTION:Lots of good stuff will happen.
PRIORITY:3
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)
我在原版iPad上运行iOS 5.1.
更新
我已经尝试在我的日历中预先创建一个与事件的时间/数据相匹配的.ical事件,看看在这种情况下,日历应用程序是否至少会显示已经存在的匹配事件,但再次没有运气 - 日历应用程序只是打开显示上次显示的内容.