是否有用于在运行时检查您是在iPhone还是iPad上运行的API?
我能想到的一种方法是使用:
[[UIDevice currentDevice] model];
Run Code Online (Sandbox Code Playgroud)
并检测字符串@"iPad"的存在 - 这看起来有点脆弱.
在3.2 SDK中,我看到它UIDevice也有一个我正在寻找的属性,但不适用于3.2之前(显然):
[[UIDevice currentDevice] userInterfaceIdiom];
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以检查通用应用程序是否存在@"iPad"?
而不是直接在我的应用程序中构建密码,并可能要求用户输入密码两次(一次为设备,另一次为我的应用程序); 我以为我可能会聪明地做自己并做一些事情:
if (device has passcode)
continue into my app
else
make user enter my app passcode
Run Code Online (Sandbox Code Playgroud)
我不想设置设备密码,我不想强制屏幕锁定,不加密任何东西 - 我真正想要的只是一个API来检测设备密码是否生效.就像是:
BOOL notReally = [UIDevice isUserSlightlyMoreSecureBecauseTheySetDeviceLockOn];
Run Code Online (Sandbox Code Playgroud)
或者如果我感到幸运的话:
BOOL isPasscodeEnabled = [UIDevice isPasscodeEnabled];
BOOL isSimplePasscode = [UIDevice isSimplePasscode];
NSInteger minutes = [UIDevice requirePasscodeAfter];
Run Code Online (Sandbox Code Playgroud)
我猜不是基于这个问题(但是已经有几年了)"以编程方式检查设置包中的iPhone密码 "或者这可能就是答案; " 锁定解锁事件iphone "这不是我想要的,但可能"事后".
在我的代码中我有这一行,但我想知道是否有办法在我使用" instantiateViewControllerWithIdentifier "方法之前检查@"SomeController"是否存在.如果标识符不存在则应用程序崩溃.
如果没有一个好的方法,这不是一个大问题,我可以更加小心,不要吝啬标识符名称,但我希望我能更优雅地处理它.
UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SomeController"];
Run Code Online (Sandbox Code Playgroud) 我发现使用android.text.format.DateUtils返回"昨天"或"2小时前"等值的相对API非常好 - 但我的应用程序并不支持Android所做的每一种语言.所以,我默认为英语,但对于我不支持的每种语言,相对字符串显示在设备的设置中.
例如,像:
Last attempt: hace 11 minutos.
对于我不支持的任何语言,我想将API调用默认为英语.但是,我没有看到任何地方为API调用设置Locale - 我希望我只是在某处丢失它.
有没有办法为API调用设置Locale,忽略设备设置?
当我的应用程序在播放音频或录制音频时移动到后台时,我想提供一些类似绿色的"In Call"状态栏,当您正在通话并换到另一个应用程序时,会显示给您"返回app"功能.
我认为这可能是一个私有API,但我注意到Griffin iTalk应用程序在录制音频时会这样做(见图片) - 所以我知道它可以完成,但我无法弄清楚API是什么(该Info.plist设置,AVAudioSession时,UIApplication/Delegate或别的什么),使这种神奇的发生.我的应用程序目前正在工作并在后台录制音频并且运行正常,我假设有一些地方我没有设置得到这种行为.
有人可以指向正确的文档或展示此行为的示例代码吗?(我已经搜索了音频文档并且无法找到它).
谢谢!

在我的应用程序中的某个时刻,我想暂时禁用旋转功能 - 有效地"锁定"代码中的方向,类似于锁定切换开关在iPad上的硬件操作.
我现在正在做:
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]
Run Code Online (Sandbox Code Playgroud)
当我通过时,我打电话给:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]
Run Code Online (Sandbox Code Playgroud)
虽然这一切看起来都有效,但是API文档表明应该始终有一个开头,然后是结束 - 我基本上是反过来的.是否有更合适的API来处理"锁定方向"?
我正在寻找为OS X和/或iOS创建一个应用程序,允许用户在录音过程中以不同的间隔任意地将标记嵌入到音频中.拥有一个可以包含此信息的文件会很好,但可能有效也可能无效.我认为它类似于YouTube注释允许的内容.
要求:
这适用于我正在处理的应用程序创建的音频,因此不能从其他来源导入音频以进行标记.
- 剪辑 -
编辑:也许MP4 + XMP?
EDIT2:有没有人尝试在iOS平台上使用音频或视频的自定义XMP字段?在Mac平台上?我已经从Adobe 下载了XMP工具包(它有一个Xcode项目) - 但这是我的舒适区域.从高层次来看,它看起来非常简单,但任何有XMP工具包经验的人都有任何想法吗?
正如下面的答案所示,是否有人有使用章节标记的QuickTime等替代解决方案的经验?各种方法的优点和缺点?
在考虑它之后,做一些支持音频和视频格式的东西会很不错,即使最初的当前要求只是音频.
我正在使用Eclipse 3.6.2,OS X 10.6.7和三星Galaxy Tab进行Android开发.
一切都很好,除了每15或20分钟,设置| 应用| 发展| USB调试复选框"取消选中"自身.这意味着我需要拔下USB线并重新进入设置,重新选中复选框,重新插入线缆,我很高兴.
我想知道的是,是否有某种方法可以使该复选框"粘滞"(我猜它可能应该是 - 但我无法弄清楚在什么情况下会导致"取消选中") .我尝试过多种USB/SD卡/开发设置,但还没有找到"粘性位".
我是Android的新手,所以我希望这里有一些"你忘了也做X"......
编辑:
也许它与10分钟左右弹出的USB海量存储信息有关?我刚刚注意到一条消息"USB已连接:您已通过USB将手机连接到计算机.如果要在计算机和手机SD卡之间复制文件,请选择装入".
cocoa-touch ×5
iphone ×4
objective-c ×3
android ×2
ios ×2
ipad ×2
audio ×1
cocoa ×1
date ×1
debugging ×1
locale ×1
metadata ×1
orientation ×1
recording ×1
screen-lock ×1
time ×1
uidevice ×1
uistatusbar ×1
uistoryboard ×1
usb ×1
xmp ×1