Tag: ios5

两个同时使用NSOperationQueue的后台任务

我有两个任务需要在不同的线程优先级中同时执行: 不断地收集和处理陀螺仪运动数据(高优先级) gyroQueue = [[NSOperationQueue alloc] init]; [self.motionManager startDeviceMotionUpdatesToQueue:gyroQueue withHandler:^(CMDeviceMotion *motion, NSError *error){ [self processMotion:motion withError:error]; }]; 有时在不干扰运动更新的情况下处理图像(转换,裁剪,分割等= 1-2秒)(非常低的优先级) imageProcessingQueue = [[NSOperationQueue alloc] init]; [imageProcessingQueue addOperationWithBlock:^{ [self processImage:[UIImage imageWithData:imageData]]; }]; 编辑:这是我原来的地方(而不是块操作),它仍然阻止运动更新: NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(processImage:) object:[UIImage imageWithData:imageData]]; [operation setThreadPriority:0.0]; [operation setQueuePriority:0.0]; [imageProcessingQueue addOperation:operation]; 看起来这两个任务都在同一个后台线程上执行(由于NSOperationQueue性质?),并且处理图像会阻塞陀螺队列更新直到完成,这就是我想要避免的。 我如何使用NSOperationQueue产生两个单独的线程,并相应地分配非常高和非常低的优先级? 编辑:这个问题仍然是开放的,我正在使用特劳沃哈蒙的图像resizefunction的图像resize。 有人可以确认它是否线程安全?

外部延伸和内部的可调整的UIImage保持不变

我正在尝试在我的应用中为垂直条创build一个“抓地力”,以向用户显示他们可以在视图上滑动。 我想只使用一个小的版本的图像,它具有抓地力和1px的上下,这是酒吧的其余部分的背景。 所以: ssss ssss gggg becomes ssss ssss gggg ssss ssss 方法resizableImageWithCapInsets:允许你告诉iOS不调整外部边缘,但有没有办法告诉它不要调整内部和外部拉伸? 我已经试过指定一个超大的帽子插入, UIEdgeInsetsMake(29.0f, 0.0f, 29.0f, 0.0f)并导致夹在图像的框架的顶部,但是否则是我正在寻找正确的伸展行为对于。 我只需要把握部分在框架中心。 完整的代码对于那些有兴趣的人来说(这导致了整个长度的重复): gripBar = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grip"] resizableImageWithCapInsets:UIEdgeInsetsMake(1.0f, 0.0f, 1.0f, 0.0f)]]; gripBar.frame = CGRectMake(0, 0, gripWidth, fullHeight); [view gripBar]; 更新:基于所选答案的工作代码 @implementation GripBar – (id)init { self = [super init]; if (self) { UIImageView *bar = [[UIImageView […]

经过一段时间的运行我的应用程序后,WiFi在iPod中下降

我有我的应用程序和用于发展的iPod的WiFi问题。 其他用户报告与我的应用程序相同的问题。 该应用程序保持打开连接使用套接字,并显示在上面的连接状态。 此外,应用程序断开连接时重新连接。 我的iPod的无线信号每1分钟就会下降一次,最终会下降,直到我插上电源到iPod或退出应用程序。 这真是让我疯狂的问题:-P iPod的iOS版本是5.0.1 你知道我能做些什么来解决这个问题吗? 其他人有相同的连接问题? 提前致谢。 编辑:添加日志: http : //pastebin.com/hYVs5Vat 编辑2:似乎我有两个不同的问题,1 – 无线networking每分钟下降。 2-应用程序完全断开WiFi。 [解决了] 第一个看起来是iPod vs路由器问题,而不是应用程序故障。

应用渐变到UIImage – 如何去除颜色反转?

我正在对UIImage应用渐变,所有我想要它在底部黑暗,并慢慢转向清除或浅灰色的中间。 这大体上是好的,但我有一个问题,我的图像颜色在这个梯度下的一些地方倒置。 这看起来很烦人。 我该如何解决? 这是我方便您的方法。 我试着select不同的混合模式,但是没有帮助。 另一个问题是,如何让底部的黑色更密集? 这种方法将无需任何额外的代码。 开始颜色是[UIColor blackColor] ,结束颜色是[UIColor clearColor] : – (UIImage *)imageWithGradient:(UIImage *)img startColor:(UIColor *)color1 endColor:(UIColor *)color2 { UIGraphicsBeginImageContextWithOptions(img.size, NO, img.scale); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextTranslateCTM(context, 0, img.size.height); CGContextScaleCTM(context, 1.0, -1.0); CGContextSetBlendMode(context, kCGBlendModeDarken); // tried normal here, same results CGRect rect = CGRectMake(0, 0, img.size.width, img.size.height); CGContextDrawImage(context, rect, img.CGImage); // Create […]

如何在iPhone应用程序中从服务器播放videourl

实际上,我使用XMLParser从服务器获取一个URL。 我想在我的应用程序中播放这个videourl。 现在我用`MPMoviePlayerController,但它不工作。 请帮忙! XMLParser.m -(id) loadXMLByURL:(NSString *)urlString { videoNames =[[NSMutableArray alloc]init]; videos = [[NSMutableArray alloc] init]; NSURL *url = [NSURL URLWithString:urlString]; NSData *data = [[NSData alloc] initWithContentsOfURL:url]; parser = [[NSXMLParser alloc] initWithData:data]; parser.delegate = self; [parser parse]; return self; } – (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes: (NSDictionary *)attributeDict { […]

为什么在应用程序中显示UIAlertView:didFinishLaunchingWithOptions:导致错误?

在我的应用程序的第一次运行时,我显示一个警报视图,供用户selectiCloud或本地文档存储。 显示警报视图导致以下错误: 应用程序启动结束时,应用程序预期具有根视图控制器wait_fences:无法接收回复:10004003 为什么发生这种情况? 如何在启动时显示警报视图而不会出现此错误? – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Check the user preferences for document storage options if (![UserPreferencesHelper userDocumentStoragePreferencesHaveBeenCreated]) { // User preferences have not been set, prompt the user to choose either iCloud or Local data storage UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Use iCloud?" message:@"Would you like to store data […]

协调CACurrentMediaTime()和deviceCurrentTime

我正在尝试与AVAudioPlayer同步几个CABasicAnimations 。 我遇到的问题是,当AVAudioPlayer使用deviceCurrentTime时, CABasicAnimation使用CACurrentMediaTime()作为调度animation的参考点。 同样对于animation,使用CFTimeInterval ,而对于声音,它是NSTimeInterval (不知道是否像其他CF和NStypes“免费桥接”)。 我发现参考点也是不同的。 有没有办法确保声音和animation使用相同的参考点?

在应用程序iOS 5中访问CrashReporter文件**企业应用程序**

停止阅读,如果你要说的话,“等等私人API使用将被拒绝等等等等” 这是一个企业应用程序 在iOS 5中,我试图从客户端的iPad发送当前crashlogs到我的服务器。 他们有一个pipe理软件,但没有办法从它得到crashlogs,只是在这个实例中没有帮助的控制台日志。 我已经尝试使用读取/ var / logs / CrashReporter的内容 NSError * error; NSArray * directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"/var/mobile/Library/Logs/CrashReporter" error:&error]; 但是得到 Error Domain=NSCocoaErrorDomain Code=257 "The operation couldn't be completed. (Cocoa error 257.)" UserInfo=0x197e80 {NSUserStringVariant=( Folder ), NSFilePath=/var/mobile/Library/Logs/CrashReporter, NSUnderlyingError=0x198370 "The operation couldn't be completed. Operation not permitted"} 我也试过NSFileManager contentsOfDirectoryAtURL:并有相同的错误 我已经寻找一个私人的API访问沙箱外的文件,但没有看到任何东西突出。 是否有另一种方法来获取设备的EXISTING崩溃日志? 我正在考虑实施一个现有的第三方崩溃日志包,但我需要访问设备上的当前日志,因为这个崩溃不容易重新创build和设备也不容易访问。 用户不与iTunes同步,所以我不能从那里得到日志。 我知道这是可能的,至less在越狱的环境下,因为像iFile这样的应用程序。 […]

UIMoreNavigationController和UITabBarController的问题

这个问题一直困扰着我,但是我想我终于明白了什么是错的。 我想我现在只需要一个解决scheme… 这是应用程序的背景。 用户可以使用大约6个不同的选项卡,使用UITabBarController进行显示。 这些选项卡中的每一个都是UINavigationController中的自定义UIViewController子类。 所有6个选项卡都设置在一个nib文件(MainWindows.xib)中。 我需要能够隐藏和显示不同的标签,取决于用户是否login,以及他们login谁。 我有这样的工作: 在应用程序启动(应用程序:didFinishLaunching:…),六个选项卡被存储到我有一个NSMutableArray。 这工作正常… 当用户login或注销时,我从NSMutableArray访问他可以使用的选项卡,并将它们添加到UITabBarController中,如下所示: [tabBar setViewControllers: [NSArray arrayWithObjects: [viewControllers objectAtIndex:1], [viewControllers objectAtIndex:5], nil] animated:YES]; viewControllers是我之前用6个选项卡做的NSMutableArray。 在我创buildNSLog之后做这个,这就是我所期望的: 2012-02-24 11:45:57.690 [redacted][26155:207] ( "<UINavigationController: 0x8249db0>", "<UINavigationController: 0x841a3f0>", "<UINavigationController: 0x824be40>", "<UINavigationController: 0x824dbd0>", "<UINavigationController: 0x824e810>", "<UINavigationController: 0x841dfb0>" ) 但是,当我从最后一个自定义视图控制器,这是在列表中的最后一个导航控制器中打印self.parentViewController的值,我得到这个: 2012-02-24 11:54:51.247 [REDACTED][26306:207] <UIMoreNavigationController: 0x826ab00> 2012-02-24 11:54:51.248 [REDACTED][26306:207] <UITabBarController: 0x8257c50> 第一行是self.parentViewController,第二行是self.parentViewController.parentViewController 这似乎表明,heirachy是: UITabBarController – […]

如何检测用户是否允许位置更新

如果用户在第一次启动时拒绝允许位置更新。 我怎么能检测到这个?