小编Gru*_*kes的帖子

Xcode 8/Swift 3:"UIViewController类型的表达式未使用"警告

我有以下功能,以前干净地编译,但使用Xcode 8生成警告.

func exitViewController()
{
    navigationController?.popViewController(animated: true)
}
Run Code Online (Sandbox Code Playgroud)

"表达式类型"UIViewController?"未使用".

为什么要说这个,有没有办法删除它?

代码按预期执行.

ios swift

229
推荐指数
4
解决办法
5万
查看次数

模拟器错误FBSSystemServiceDomain代码4

我正在尝试在模拟器中运行应用程序,但收到此错误消息:

Unable to run app in Simulator
An error was encountered while running (Domain = FBSSystemServiceDomain, Code = 4)
Run Code Online (Sandbox Code Playgroud)

错误的屏幕截图

我没有看到任何以前通过谷歌搜索引用这个.

它使用XCode 6 Beta,该应用程序在Swift中链接到Obj-C静态库.它在设备上运行良好.

有任何想法吗?

ios ios-simulator xcode6 ios8.1

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

什么是Swift等效的respondsToSelector?

我用谷歌搜索,但无法找出快速等同于什么respondsToSelector:.

这是我唯一能找到的东西(Swift替代respondsToSelector :)但在我的情况下并不太重要,因为它检查委托的存在,我没有委托我只想检查是否存在新的API或者不在设备上运行时,如果没有回到以前版本的api.

objective-c selector swift

189
推荐指数
10
解决办法
9万
查看次数

Xcode突然停止在硬件上运行项目:"无法启动xxx.app:..没有这样的文件.."

Xcode已经停止运行我的应用程序了,它在我从设备中删除它后直接启动,并尝试通过在Xcode中重新运行来重新安装(之前我曾做过数百次).

它说

"无法启动XXX.app"

"没有这样的文件或目录(/Users/Mylaptop/Library/Developer/Xcode/DerivedData/MyApp-ekxcbebfpzkahtfkujyqkcwprzia/Build/Products/Debug-iphoneos/MyApps.app/MyApp)."

我重新启动了手机,重新启动了Xcode,清理了一切,重建了一切.此错误消息不会消失.

这是我自使用以来一直使用的Xcode 4.5,如果我恢复到4.3.2然后Xcode说"完成正在运行的应用程序"但它实际上没有做任何事情 - 该应用既没有安装也没有运行.

我完全卡住了 - 再也无法在设备上运行任何东西了.

有什么建议?

xcode ios

139
推荐指数
9
解决办法
8万
查看次数

"运行目标iOS设备无法运行该方案"

我一直在iPhone 5/iOS 6上运行我的应用程序,但是当我尝试在iPhone 4S/iOS6上运行它时,我得到"运行目标iOS设备无法运行方案NN.该方案不包含可构建的可以为运行指定设备支持的体系结构构建".

我已经查看了之前的帖子,但它们涉及部署目标的问题.在我的情况下,我已将Base SDK设置为6.1,并将Deployment Target设置为5.0.

iPhone 4有iOS 6.0.1版.

xcode ios

84
推荐指数
8
解决办法
6万
查看次数

fileExistsAtPath:对于存在的文件返回NO

在我的代码文件中的一个点,ExistsAtPath:对于我确认存在的文件返回NO.我一直在摸不着头脑,无法弄清楚为什么它不起作用,所以把它改成了这个代码,因为这个目录绝对存在但是如果它不会被创建的话.

NSError* err = nil;
NSURL *dir = [[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory
                                                       inDomain:NSUserDomainMask
                                              appropriateForURL:nil   
                                                         create: YES
                                                          error:&err];
BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:[dir absoluteString]];
Run Code Online (Sandbox Code Playgroud)

运行此代码后,应用程序目录文件夹存在且err为0,但是存在为NO.

怎么会这样?

TIA

ios

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

"推送多个详细视图控制器时,对DetailViewController的开始/结束外观转换的不平衡调用"

我有一个包含表视图的视图控制器,可以选择表中的项目和正确创建的详细视图控制器.

表中的项表示可以具有与其关联的基于时间的触发器的项目,并且为每个项目安排本地通知,如果当本地通知到期时应用程序在前台,则自动显示该项目的详细视图.

我有一个问题,当两个通知同时到期导致视图无法正常显示时,以及控制台日志:"NNN的开始/结束外观转换的不平衡调用",其中NNN是我的详细视图控制器.

表视图控制器创建如下:

 self.tableViewController = [[TableViewController alloc] initWithNibName:@"TableView" bundle:nil];
 UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.tableViewController];
 self.window.rootViewController = navController;
Run Code Online (Sandbox Code Playgroud)

当本地通知到期并且调用didReceiveLocalNotification:时,app会使用NSNotifcationCenter postNotificationName:来广播通知,并且表视图控制器正在侦听该通知.当表视图控制器收到该通知时,它会创建详细视图控制器并将其推送到堆栈,如下所示:

[self.navigationController pushViewController:detailViewController animated:YES]; 
Run Code Online (Sandbox Code Playgroud)

我在某处读到如果一个视图控制器在它本身不在堆栈顶部时推送另一个视图控制器可能会出现问题 - 所以我认为这一定是问题,因为当表视图控制器收到第二个通知时它会不再位于导航堆栈的顶部,因为它在以前只是在第一个通知到达时将详细视图控制器推送到堆栈上.

所以我将推送代码更改为:

[[self.navigationController topViewController].navigationController pushViewController:detailController animated:YES];
Run Code Online (Sandbox Code Playgroud)

但它没有任何区别.

所以我接下来认为可能会出现问题,因为第一个细节视图控制器没有机会在推送第二个视图控制器之前完全显示 - 所以我改变了我的应用程序的通知发布使用:

[[NSNotificationCenter defaultCenter] postNotificationName: 
Run Code Online (Sandbox Code Playgroud)

[[NSNotificationQueue defaultQueue] enqueueNotification: postingStyle:NSPostWhenIdle]
Run Code Online (Sandbox Code Playgroud)

因此推送不会发生在app循环的相同迭代中.但这没有任何区别,也没有试图推迟推送详细视图控件:

double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    [[self.navigationController topViewController].navigationController     pushViewController:detailController animated:YES]; 
});
Run Code Online (Sandbox Code Playgroud)

我不知道问题是什么或接下来要尝试什么,任何想法?

ios

62
推荐指数
3
解决办法
7万
查看次数

Xcode无法在您的钥匙串中找到此配置文件的有效私钥证书对

[在立即标记为重复之前,我已经阅读了其他一些具有相同问题描述但在应用答案后没有解决方案的其他人]

几天前我创建了一个配置文件,并成功地使用它在我的iPhone上运行应用程序.

然而,现在我使用不同的笔记本电脑进行开发,并且无法继续进行,因为我不断获得"Xcode无法在您的钥匙串中为此配置文件找到有效的私钥证书对".我尝试使用与之前使用的相同的iPhone /配置文件组合,另外我还有另一部iPhone,并使用该设备的id生成了新的配置文件.但是,我也得到了与该个人资料/电话相同的消息.

来自此网站上的其他帖子似乎人们在管理器的"库"部分中没有拖动/删除配置文件时遇到此问题 - 我在Xcode上拖动了配置文件,并且在"库"部分中有一个包含相关配置文件的结果配置文件部分和组织者的设备部分.

证书在Keychain Access中显示为有效.

有什么建议?

后来添加:尝试Apple的问答:

https://web.archive.org/web/20141029102125/http://developer.apple.com/library/ios/qa/qa1618/_index.html

他们说在Keychain Access中点击.p12文件.他们在说什么,.p12文件是什么,在哪里?它没有显示在他们自己的文档屏幕截图中,也没有出现在我的Keychain Access中.这应该是吗?

ios

57
推荐指数
1
解决办法
7万
查看次数

SKProductsRequest返回0个产品的原因是什么?

我正在尝试设置IAP,但在使用SKProductsRequest调用检索产品后,我的委托中的SKProductsResponse数组的计数为0.这是我的清单:

  • 测试产品已添加到iTunes连接
  • 产品的包ID与应用包ID匹配(并且不使用通配符)
  • SKProductRequest中设置的产品标识符与在iTunes connect上创建的产品相匹配
  • 自iTunes产品在iTunes连接上创建以来,我已经等了几个小时
  • 配置文件启用IAP
  • 遵循各种教程中的所有步骤,例如http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/等.
  • 已从设备中删除应用程序,重新启动Xcode,重建等.

有关为什么取出的产品数为零的任何其他建议?

我不相信这会是一个编码问题,但无论如何它在这里:

…

        NSSet *productIdentifiers = [NSSet setWithObjects:@"redacted", nil];
        self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
        self.productsRequest.delegate = self;
        [self.productsRequest start];

…
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
    NSArray *products = response.products;
    NSLog(@"Product count: %d", [products count]);
    for (SKProduct *product in products)
    {
        NSLog(@"Product: %@ %@ %f", product.productIdentifier, product.localizedTitle, product.price.floatValue);
    }
}
Run Code Online (Sandbox Code Playgroud)

in-app-purchase ios

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

企业应用程序的In House与Ad Hoc分布有什么区别?

我有一个Apple iOS Enterprise帐户,我正在创建一个分发配置文件,并且惊讶地发现我必须选择In House或Ad Hoc的分发方法.

这让我很困惑 - 如果我为非企业帐户创建分发配置文件,那么这里的选择将是Ad Hoc或App store,这是有道理的,因为有不同的配置文件用于测试和发布.但这是针对企业帐户的,我不明白企业应用的内部或Ad Hoc分配方法之间的区别.

ios provisioning-profile ios-provisioning

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