如何解决CALayerInvalidGeometry',原因:'CALayer的位置包含NaN:?

我有一个错误,它在应用程序启动时崩溃。 这是我得到的错误: *** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [nan nan]' *** First throw call stack: (0x250b022 0x2709cd6 0x24b3a48 0x24b39b9 0x217ec0d 0x2174f55 0x158f3f7 0xbc74e 0xbe512 0xbfa26 0xbe4ad 0x224ffda 0x224f956 0x224e449 0x224ab9a 0x24df970 0x247f1c1 0x2442967 0x2441d84 0x2441c9b 0x2c0a7d8 0x2c0a88a 0x1559626 0x2aed 0x2a65) terminate called throwing an exception 我尝试使用exception断点,并没有显示哪部分的代码已经出错了。它只停留在这一点-0xbc74e:movl $ 0,%eax- […]

苹果推送通知不会自动更改图标徽章

我看到我的iPhone(4S,iOS 5.1)中的邮件应用会在新邮件到达时自动更新徽章计数,即使应用程序未运行。 所以有可能在我的应用程序中实现这种行为,对吧? 我的应用程序成功注册了所有3种types的推送通知 – 徽章,警报和声音。 对于此应用程序的所有3种types的远程通知,电话设置均设置为开。 我的应用程序收到远程通知,并显示警报,播放声音,但它不会更新徽章号码。 如果我通过警报上的查看button启动应用程序,那么我的应用程序可以完美地读取徽章值,并且可以从代码中更改/删除/设置图标徽章。 通知到达时,iOS无法自动更改我的应用的图标徽章的具体原因? 我已经看到所有类似的post,他们都在讨论关于电话设置,或者关于它注册的通知types,或者检查有效载荷JSON包括徽章。 有没有其他原因可能会导致这个问题? 这是我的代码块: 每次启动应用程序时注册APN – [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)]; 设备令牌几乎立即收到。 令牌已经发送给提供商,并且我正在接收通知。 警报和声音的作品。 但徽章没有自动的效果,直到我启动应用程序,并手动更改。 请帮忙。

在@interface之内或之外声明IBOutlet?

对不起,如果我对这个太挑剔,但我现在正在学习iOS编程,而且我似乎有些人像这样声明IBOutlet : IBOutlet附属于财产 #import <UIKit/UIKit.h> #import "CustomCell.h" @interface CustomTableViewController : UITableViewController { CustomCell *customCell; } @property (nonatomic, retain) IBOutlet CustomCell *customCell; @end 还有一些声明如下: IBOutlet附在界面里面的声明中 #import <UIKit/UIKit.h> #import "CustomCell.h" @interface CustomTableViewController : UITableViewController { IBOutlet CustomCell *customCell; } @property (nonatomic, retain) CustomCell *customCell; @end 哪一个是正确的方法来申报呢? 他们之间有什么区别? 如果有人知道解释为什么他们把它放在不同的地方,这将是非常好的学习。 非常感谢 :)

iOS中的embedded字体:为什么它们不能正确居中在y轴上?

我已经在我的iOS应用程序中embedded了一些字体,并发现它们没有正确地居中在标签和button中,它们在y轴上太高,有没有解决scheme? 起初,我以为这只是一个廉价的字体文件,我用它,然后我试着用Adobe字体(只是为了看),它仍然有问题。

故事板+基本本地化+ .strings文件不会在运行时本地化

(也有类似的问题,其中一些导致了我已经尝试过,并且发现不起作用的答案,而其他人没有得到答案,我假设,因为那些问题没有提供像我将要提供的那样多的细节。 我从一个故事板开始,对我的应用程序运行良好; 它包含的string是英文的。 我想添加法语本地化。 我做到了这一点: 添加了基本本地化,将MainStoryboard.storyboard从en.lproj转移到Base.lproj 。 添加了一个法语本地化,将InfoPlist.strings (英文)和MainStoryboard.storyboard (Base)克隆到fr.lproj 。 在法国的MainStoryboard.storyboard更改了几个string( UISegmentedControl的段名称)。 在模拟器中,将语言设置为法语。 从Xcode运行应用程序。 结果 :这工作; 我在运行的应用程序中显示了更改的string。 但我想成为所有的幻想。 我想用.strings文件做法语本地化。 (这不仅仅是一个花哨的问题,法国本地化将翻译到非技术翻译,谁不能期望掌握界面生成器。)所以: 在Xcode Project导航器中select基本MainStoryboard.storyboard 。 在“文件”检查器的“本地化”下,将法语本地化从“Interface Builder Cocoa Touch Storyboard”更改为“Localizable Strings”。 接受Xcode的警告,法语故事板将被丢弃,以支持出现在助手编辑器中的.strings文件。 做了两个相同的编辑; 不存在任何错误string的问题,因为它们都被评论为IBUISegmentedControl…segmentTitles ; 并且标签文本不会出现在.strings文件中的任何其他位置。 从模拟器中删除应用程序的现有(工作)副本。 运行应用程序。 结果 :该视图使用基本(本来是英语)本地化,而不是加载法语string。 这并不令人满意。 我尝试从模拟器中删除应用程序,甚至删除派生数据文件夹。 错误依然存在。 正如我所说,我不能把一个.storyboard文件转换成一个非技术性的翻译。 我如何让iOS从.strings文件接受故事板本地化?

我怎样才能检查,如果我从JSON空?

我从这里得到了JSON [{ “照片”:空}] 我使用这个代码 NSMutableArray *jPhoto = [NSMutableArray arrayWithArray:(NSArray *)[jsonDict valueForKey:@"photo"]]; 我如何检查它,如果我想使用if()? 编辑 这里是JSON数据 [{"photo": [{"image":"http:\/\/www.yohyeh.com\/upload\/shisetsu\/13157\/photo\/1304928459.jpg","title":"test picture","content":"this is description for test picture.\r\n\u8aac\u660e\u6587\u306a\u306e\u306b\u30fb\u30fb\u30fb\u30fb\u30fb\u30fb\u30fb\u30fb\u30fb\u30fb\u30fb\u30fb"} ,{"image":"http:\/\/www.yohyeh.com\/upload\/shisetsu\/13157\/photo\/1304928115.jpg","title":"nothing","content":"iMirai"} ,{"image":"http:\/\/www.yohyeh.com\/upload\/shisetsu\/13157\/photo\/1303276769.jpg","title":"iMirai","content":"Staff"}]} ] 这里是我的JSONparsing器 NSError *theError = nil; NSString *URL = [NSString stringWithFormat:@"http://www.yohyeh.com/apps/get_sub_detail.php?id=%@&menu=photo",g_id]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:URL]]; NSURLResponse *theResponse =[[[NSURLResponse alloc]init] autorelease]; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&theResponse error:&theError]; NSMutableString *string […]

iOS Keychain SecItemAdd返回-25243

我正在更新一个iPhone应用程序的默认configuration稍作改动。 不过,自从我最后一次构build它以来,已经有一段时间了,所以我已经将Xcode升级到了4.2,并且在最新版本中包含了iOS 5支持。 当我去testing设备时,我得到以下断言错误: 2011-11-02 20:57:18.869 RoseBandwidth[903:707] Tried to add item, got result: -25243 2011-11-02 20:57:18.870 RoseBandwidth[903:707] *** Assertion failure in -[KeychainItemWrapper writeToKeychain], /Users/tim/code/RoseBandwidth/Classes/KeychainItemWrapper.m:312 2011-11-02 20:57:18.872 RoseBandwidth[903:707] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Couldn't add the Keychain Item.' 我正在使用Apple的GenericKeychain项目的KeychainItemWrapper类的实现。 值得注意的是,这个错误只出现在设备上,而不是模拟器(我知道平台之间的访问组限制差异,但通常我认为在模拟器上导致了问题,而不是实际的硬件)。 为什么我会收到这个错误? 我没有触及任何有关应用程序的钥匙链相关部分; 它存储和检索数据就像以前一样。

如何访问Swift中的iOS私有API?

我怎样才能调用非公开的iOSfunction,并从Swift访问非公有的特性? 具体来说,我想在QuartzCore框架中使用一个非公共类。 我想到的一个解决scheme是创build“桥接”Objective-C项目,将这些非公开的API封装到公共API中,而不是从Swift中调用这个Objective-C函数。 不过,我的解决scheme现在是纯Swift,我宁愿保持这种方式。 还有没有更加坚定的方法? (例如添加一些Objective-C桥接头文件 ) 注: 我知道你在想什么,私人API是私人的,因为它们不应该被使用。 我知道风险,我知道所有的地方,应用程序商店的限制等。毕竟,仔细考虑和大量的研究,不幸的是,似乎仍然是在这种情况下最好的办法。

为什么不可能多次使用MPMoviePlayerController?

在MonoTouch中,我们遇到了这个问题与电影播放器​​样品,它只会播放一次的video,但不会播放第二次。 我正在问这个问题发表一个答案,因为它已经打了各种各样的人。

找出一个NSDate是否是今天,昨天,明天

在iOS SDK中,我需要find一个简单而安全的方法来查看NSDate是否在今天,昨天,明天。 我正在寻找的是这样的伪代码: NSDate *myDate = someDate; if ([myDate isTomorrow]) { NSLog("Tomorrow"); } 你将如何解决?