在事务内调用

如果我在从服务中加载数据的同时closuresiPad应用程序,应用程序将closures,但是会立即再次打开,而无需执行任何操作。 在这一点上,我无能为力。 我无法closures应用程序,我无法与应用程序或设备进行交互。 再次使用设备的唯一方法是重新启动它。 该应用程序不会崩溃,它只是禁用该设备。 发生这种情况时,以下行在applicationWillResignActive和applicationDidEnterBackground之后立即出现在控制台中三次: +[CATransaction synchronize] called within transaction 如果应用程序崩溃几乎可以,但是设备完全无用的事实是一个巨大的问题。 如果我可以拦截这个bug或以某种方式检测CATransaction引发这个问题,那就没事了。 有任何想法吗?

UIFont fontWithName返回nil

在我的info.plist中,我添加了一个键“应用程序提供的字体”,并添加了EdwardianScriptITCStd.otf 但是,当我尝试获取该字体时,返回nil: NSLog(@"%@", [UIFont fontWithName:@"EdwardianScriptITCStd" size:16.0f]); 我使用[UIFont familyNames]打印字体系列,但它也不存在: ( Thonburi, "Snell Roundhand", "Academy Engraved LET", "Marker Felt", "Geeza Pro", "Arial Rounded MT Bold", "Trebuchet MS", Arial, Marion, "Gurmukhi MN", "Malayalam Sangam MN", "Bradley Hand", "Kannada Sangam MN", "Bodoni 72 Oldstyle", Cochin, "Sinhala Sangam MN", "Hiragino Kaku Gothic ProN", Papyrus, Verdana, "Zapf Dingbats", Courier, "Hoefler Text", […]

NSMakeCollectable和ARC不起作用

我正在尝试将我的旧项目转换为ARC。 我有一个创buildUUID的函数,但显然这在使用ARC时不再支持: NSString *uuid = nil; CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault); if (theUUID) { uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID)); //[uuid autorelease]; CFRelease(theUUID); } 编译器错误(尝试转换时):'NSMakeCollectable'不可用:在自动引用计数模式下不可用。 所以我的问题是:如何在使用ARC时创buildUUID? 现在还有另外一种方法吗?

禁用模块时使用@import

我有个问题 @import Foundation; 我看到: @import vs #import – iOS 7 我将“启用模块”设置为“是” 而我的问题没有解决

AVAudioPlayer错误加载文件

我正在尝试使用AVAudioPlayer播放一个简单的声音,我不断收到在控制台中的这个错误: 2011-09-02 20:29:07.369 MusicLog[967:10103] Error loading /System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAHALPlugIn.bundle/Contents/MacOS/AppleHDAHALPlugIn: dlopen(/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAHALPlugIn.bundle/Contents/MacOS/AppleHDAHALPlugIn, 262): Symbol not found: ___CFObjCIsCollectable Referenced from: /System/Library/Frameworks/Security.framework/Versions/A/Security Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation in /System/Library/Frameworks/Security.framework/Versions/A/Security 这是我的代码,应该按下我的button时播放声音: NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"tick" ofType:@"caf"]; NSError *error; NSURL *soundURL = [NSURL fileURLWithPath:soundPath]; AVAudioPlayer *tickPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&error]; [tickPlayer setDelegate:self]; [tickPlayer setNumberOfLoops:0]; [tickPlayer prepareToPlay]; if (tickPlayer == nil) { NSLog(@"%@", […]

在Swift中删除NSNotification观察者的位置?

我应该在Swift中删除NSNotification的观察者,因为viewDidUnload和dealloc()不可用?

钥匙串:报告为errSecItemNotFound的项目,但在添加时收到errSecDuplicateItem

这个问题一直在困扰我,我希望有人对此有所了解。 从本质上讲,我有一小部分用户无法保存/更新项目到钥匙串。 有问题的控制stream程如下: 我们使用SecItemCopyMatching检查项目的存在。 这将返回错误代码errSecItemNotFound 然后我们尝试通过SecItemAdd添加项目,但是这会返回errSecDuplicateItem 。 因此,我们有一些用户根本无法更新钥匙串项目的一个子集,要求他们恢复他们的设备以清除钥匙串。 这显然是一个不可接受的解决方法。 它似乎以前为他们工作,但现在已经进入这个不可更新的周期。 经过研究,我看到有关SecItemCopyMatching使用的search查询的问题不够具体,但我的代码尽可能使用通用search查询。 + (NSMutableDictionary*)queryForUser:(NSString*)user key:(NSString*)key { if (!key || !user) { return nil; } NSString* bundleId = [[NSBundle mainBundle] bundleIdentifier]; NSString* prefixedKey = [NSString stringWithFormat:@"%@.%@", bundleId, key]; NSMutableDictionary* query = [NSMutableDictionary dictionary]; [query addEntriesFromDictionary:@{(__bridge id)kSecClass : (__bridge id)kSecClassGenericPassword}]; [query addEntriesFromDictionary:@{(__bridge id)kSecAttrAccount : user}]; [query addEntriesFromDictionary:@{(__bridge id)kSecAttrService […]

乱舞事件根本没有出现

我想添加一些分析function到我的应用程序,所以我在Flurry上创build了一个帐户,并将他们的SDK添加到我的项目中。 然后我logging了一些事件,正常事件和定时事件。 直到这里没有什么特别的:)但即使在2天后,我看不到在Flurry的仪表板中的任何这些事件。 我可以看到会议的数量,所以我猜我的应用程序实际上是发送一些东西。 但没有事件。 任何想法? 我没有做任何关于代码的奇特的事情,我用我的ID注册(根据我之前说的,这是正确的) [FlurryAnalytics startSession:flurryKey]; 和logging事件使用: [FlurryAnalytics logEvent:@"MyEvent"];

如何在Xcode 9上构buildSwift 3项目?

Xcode 9发行说明表示支持Swift 3编译: Swift 4和Swift 3 ,Swift 4和Swift 3目标的一个编译器可以在同一个项目中一起编译。 我已经安装了Xcode 9testing版。 但是当我按下构build它显示一堆错误。 在Xcode 9中使用Swift 3时需要做些特别的准备工作吗? UPD: 使用Swift 3.1编译的模块不能在Swift 4.0中导入

UIAlertController如果iOS 8,否则UIAlertView

我想符合iOS 8中使用的UIAlertController,因为UIAlertView现在已经被弃用了。 有没有一种方法,我可以使用这个没有打破支持iOS 7? 是否有某种条件,我可以做检查iOS 8,否则做iOS 7支持的其他条件?