小编dat*_*inc的帖子

iOS 7 - 带搜索功能的UITableViewController位于状态栏下

我有一个带有嵌入式UISearchDisplayController的UITableViewController.在iOS 7中,搜索框位于状态栏下方.接口构建器中是否有一种方法可以偏移tableview,以便状态栏不会覆盖搜索栏(并且仍然使用UITableViewController和UISearchDisplayController设置)?

uitableview uisearchdisplaycontroller ios ios7

14
推荐指数
2
解决办法
1万
查看次数

ios 8:捆绑路径更改

我有一个iOS应用程序,它存储文件在数据库和生成的html文档中的绝对路径.我刚刚将我的iPhone更新到iOS 8,现在当我运行应用程序时,似乎应用程序安装在每个重新编译的不同目录中.例如,在第一次构建/运行[[NSBundle mainBundle] bundlePath]上,在下一次构建/运行时返回不同的内容.到底是怎么回事?这是Apple的新功能吗?

更新:已创建错误报告

代码示例:

如果我在多个构建/运行中运行以下行,那么每次都会得到不同的结果.

#define kOLD_PATH @"oldPath"
NSString* newPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
NSString* oldPath = [[NSUserDefaults standardUserDefaults] objectForKey:kOLD_PATH];

NSLog(@"New Path: %@", newPath);
NSLog(@"Old Path: %@", oldPath);
NSLog(@"Result: %@", [oldPath isEqualToString:newPath] ? @"Same" : @"Changed");

[[NSUserDefaults standardUserDefaults] setObject:newPath forKey:kOLD_PATH];
[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)

多次运行时输出看起来像这样

New Path: /var/mobile/Containers/Data/Application/4FFCE2CB-580D-409A-90CB-EF2B8A1FB653/Library
Old Path: /var/mobile/Containers/Data/Application/B038B2DA-F85D-4E18-A5F1-8635834EC454/Library
Result: Changed
Run Code Online (Sandbox Code Playgroud)

完全披露:在我的应用程序中,用户导入具有资源的网页(ePub).资源与网页一起存储.该网页还访问属于应用程序包的资源.为了实现这一点,当我加载网页时,基本URL被设置为网页所在的目录,并且通过绝对文件路径访问包资源.现在,每次更新时文件路径都会发生变化.我尝试创建捆绑资源的符号链接,但也无法进行后续更新.

objective-c ios

12
推荐指数
2
解决办法
2万
查看次数

NSPopover 应用程序并不总是出现在它应该出现的地方

我正在开发 NSPopover 应用程序。我使用raywenderlich 教程作为起点。

我遇到的问题是,当弹出窗口打开并且系统状态栏关闭时(例如在笔记本电脑上使用多个全屏应用程序时),弹出窗口显示在屏幕的左下方。

有没有办法强制系统状态栏打开并在弹出窗口打开时保持打开状态?

cocoa appkit nspopover

6
推荐指数
1
解决办法
451
查看次数

iOS 8:在移动到后台之前从视图中删除敏感信息

在iOS 7中,我的应用程序在应用程序进入后台(通过订阅UIApplicationDidEnterBackgroundNotification)时显示了身份验证屏幕.身份验证控制器删除了敏感信息,因此后台屏幕截图未显示任何用户信息.在iOS 8中,这不再起作用.后台截图现在显示用户上次工作的视图而不是身份验证控制器...即使应用程序返回到前台,身份验证控制器也处于活动状态.

我现在找到了一个工作.而不是使用UIApplicationDidEnterBackgroundNotification我可以使用,name:UIApplicationWillResignActiveNotification但这会导致用户离开应用程序时闪光.

这是一个错误还是苹果提供了一种从移动到后台之前从视图中删除敏感信息的新方法.

注意:将ignoreSnapshotOnNextApplicationLaunchapplicationWillResignActive:applicationDidEnterBackground:没有帮助.

更新:创建了错误报告

objective-c ios ios8

5
推荐指数
2
解决办法
1451
查看次数

如何为手表套件应用播放声音

根据我的理解,目前无法通过手表上的手表套件应用播放声音.如果是这种情况,播放声音的最佳方式是什么?目前我正在使用openParentApplication:reply:在播放声音的手机上运行代码.这是最好的方法吗?

更新:我还发现我可以使用与父应用程序相同的方法直接从手表扩展中播放音频.不知道如果不在模拟器上实际播放.

ios watchkit

5
推荐指数
1
解决办法
4018
查看次数

我可以延长用户当前的自动续订订阅到期日期吗

我想在应用程序中实现推荐功能,该功能可以为用户当前的有效订阅添加天数。有没有办法使用苹果的自动续订订阅来做到这一点?

例子

  • 用户订阅了 12 个月,将在 3 个月后续订额外 12 个月
  • 用户推荐朋友使用该应用

预期结果

  • 用户有 12 个月的订阅,将在 4 个月后续订额外 12 个月

in-app-purchase ios swift

5
推荐指数
1
解决办法
309
查看次数

xcodebuild不使用pod和多个目标

我正在尝试将CocoaPods添加到具有多个目标的现有项目中.我的podfile看起来像

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

link_with 'Target 1', 'Target 2', 'Target 2', 'Target 2'
pod 'AFNetworking', '~> 2.0'
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用具有以下命令的脚本进行构建

xcodebuild archive -project "${PROJ_NAME}.xcodeproj" -scheme ${SCHEME_NAME} -configuration ${CONFIGURATION} 
Run Code Online (Sandbox Code Playgroud)

当我编译时,我收到一个错误:

ld: library not found for -lPods-AFNetworking
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为目标使用Xcode中的Product> Archive菜单进行归档.

xcode xcodebuild cocoapods

3
推荐指数
1
解决办法
1158
查看次数

NSURLSession:无法与后台传输服务通信

当尝试在共享扩展中使用 AFNetworkings AFURLSessionManager 创建 NSURLSessionUploadTask 时,我不断收到错误。会议代表不断被召唤

- (void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(NSError *)error

随着错误

Error Domain=NSURLErrorDomain Code=-996 "Could not communicate with background transfer service" UserInfo=0x60800007a6c0 {NSLocalizedDescription=Could not communicate with background transfer service}

如果应用程序有一个会话,然后共享扩展尝试建立一个会话,就会发生这种情况。为了启动会话,我在应用程序和共享扩展中执行以下操作。

NSURLSessionConfiguration* config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:kSHARE_UPLOAD_SESSION];
config.sharedContainerIdentifier = kAPP_GROUP;
self.sessionManager = [[AFURLSessionManager alloc] initWithSessionConfiguration:config];
self.sessionManager.attemptsToRecreateUploadTasksForBackgroundSessions = YES;
Run Code Online (Sandbox Code Playgroud)

objective-c ios afnetworking nsurlsession ios8-share-extension

3
推荐指数
1
解决办法
1250
查看次数