Tag: Objective C

在App Purchase iOS中访问AppleId

有没有办法在购买完成后进行应用内购买(电子邮件或内部ID)时访问用户在身份validation对话框中输入的苹果ID?

使用UITabBarController设计从AppDelegate呈现viewController

我的应用程序是使用UITabBarController设计的,我试图在应用程序委托之上呈现一个视图(登录屏幕)。 当我使用以下代码时: self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; tabBarController = [[UITabBarController alloc] initWithNibName:@”Main_TabBarController” bundle:nil]; self.window.rootViewController = tabBarController; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@”MainStoryboard_iPhone” bundle:nil]; Login_ViewController *lvc = [storyboard instantiateViewControllerWithIdentifier:@”Login_ViewController”]; [self.window.rootViewController presentViewController:lvc animated:YES completion:nil]; 我收到错误Warning: Attempt to present on whose view is not in the window hierarchy! 屏幕只是黑色。 如何将Login_ViewController添加到窗口层次结构?

两个NSDates之间的月数和天数

我想计算两个NSDates之间的月数和天数。 我有正确计算的天数,但如何将其转换为月份和剩余天数? 这就是我用来计算总天数的方法,它正常工作。 – (NSInteger) numberOfDaysUntil { NSDate *fromDate; NSDate *toDate; NSCalendar *calendar = [NSCalendar currentCalendar]; [calendar rangeOfUnit:NSDayCalendarUnit startDate:&fromDate interval:NULL forDate:[self dateOnly:[NSDate date]]]; [calendar rangeOfUnit:NSDayCalendarUnit startDate:&toDate interval:NULL forDate:[self dateOnly:self]]; NSDateComponents *difference = [calendar components:NSDayCalendarUnit fromDate:fromDate toDate:toDate options:0]; return [difference day]; }

上传音频 – http流媒体

我正在尝试在流模式下在http下上传一个线性文件。 想法是同时执行此步骤,1)线程1:记录音频文件并将其存储在临时文件中2)线程2:从临时文件中取n个字节并将其发送到http服务器。 我怎么能写一个http流?,在CFHTTPStream上我没有看到写方法,只读:s我需要使用套接字吗? 谢谢!!! 我的实际代码是 CFWriteStreamRef stream; NSString *strUrl = @”myurl”; NSURL *url = [[[NSURL alloc] initWithString:strUrl] retain]; CFStringRef requestMethod = CFSTR(“GET”); CFHTTPMessageRef message= CFHTTPMessageCreateRequest(kCFAllocatorDefault, requestMethod, (CFURLRef)url, kCFHTTPVersion1_1); CFHTTPMessageSetHeaderFieldValue(message, CFSTR(“Content-Type”), CFSTR(“multipart/form-data”)); stream = ?? //CFReadStreamCreateForHTTPRequest(NULL, message); CFRelease(message); //other headers… if (CFWriteStreamSetProperty(stream, kCFStreamPropertyHTTPShouldAutoredirect, kCFBooleanTrue) == false) { NSLog(@”Error”); return NO; } // // Open the stream […]

制作UIView及其所有子视图的深层副本

我需要制作一个包含多个子视图的UIView的深层副本。 请帮我弄明白怎么做? 我已经在google和SO上做了一些搜索,但没有发现任何符合我想要的东西。 对于那些想知道原因的人的解释:我有一个无限滚动的UIScrollView,当然,内容重复。 内容的每个“集合”(例如,标记为AZ的26个UIButtons)包含在一个视图中。 这是我需要制作深度副本的视图,以便我可以在scrollview中在屏幕上显示它的多个实例。 我不能简单地重新创建包含按钮的视图的结构,因为按下按钮会调用我的UIScrollView子类无法访问的类的函数。 我也不希望重新创建它们,因为当我可以简单地进行深度复制时,通过逻辑重新创建并将所有子视图放在容器视图中似乎是浪费。 谁能帮我?

iOS应用程序背景位置(推送通知)

我遇到一个问题,当应用程序在后台运行时,我的应用程序在收到推送通知时需要用户位置。 在做了一些阅读后,我觉得这是不可能的,即: 1)应用程序在后台 2)收到推送通知 3)获取用户位置并执行代码块。 我在这里发现了这篇文章 ,建议你可以每N分钟运行一次任务来获取用户位置。 所以使用这个我可以检查说每十分钟可以工作,但如果我继续激活GPS将浪费用户电池。 因此,我想知道我可以在后台任务中告诉用户是否有任何推送通知等待我的应用程序? 这样我会检查他们是否每十分钟做一次,如果他们这样做,只会激活GPS。 也许我会以错误的方式解决这个问题,我真的很感激任何建议。 很抱歉没有任何后台任务的代码,因为我仍然试图让它工作。 [UPDATE] 感谢Dustin的建议。 经过一些测试后,我决定采用更简单的选择。 我现在正在使用Apple重要位置更改。 我将更改存储在一个数组中,我将其设置为仅在最后一次更改大于10分钟前更新。 然后,当应用程序变为活动状态时,我将数组中最接近的时间与发送推送通知的时间进行匹配并使用该位置。

UIControl子类 – 事件调用两次

我目前正在开发一个自定义的UIControl子类。 要跟踪触摸,我使用以下方法: – (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { NSLog(@”Start”); CGPoint location = [touch locationInView:self]; if ([self touchIsInside:location] == YES) { //Touch Down [self sendActionsForControlEvents:UIControlEventTouchDown]; return YES; } else { return NO; } } 这按预期工作,@“开始”是一次性的。 下一步是我用UIControlEventTouchDown添加一个Target和一个Selector。 [markItem addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside]; 这也有效,并且调用了action:方法。 但这是我的问题。 该动作被调用两次。 我究竟做错了什么? 我只是使用[self sendActionsForControlEvents:UIControlEventTouchDown]; 一次,目标动作被调用两次。 我的代码出了什么问题? 桑德罗梅尔

如何#ifdef环境变量而不更改Xcode项目?

我想检测Xcode设置之外的环境变量。 我可以在运行时检查环境,如检测iOS应用程序是否在调试器中运行 ,但有没有办法用这样的预处理器宏? #ifdef USER_GRADHA // do some stuff #else // do other stuff #endif 我的环境变量已设置,但未到达.m文件的编译阶段。 我想在不必修改项目的预处理器宏变量的情况下完成此操作,因为我希望每个用户的编译都不同,而不必修改它。

UIWebView缩放页面使得不需要水平滚动

有没有办法在UIWebView中缩放网页,以保持纵横比,但减少了水平滚动阅读文章的需要,例如。 垂直滚动很好,我只是不希望用户不得不经常水平来回滚动来阅读文章的每一行。 谢谢! 编辑:我用来创建视图的代码 _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, [[self view] frame].size.width, [[self view] frame].size.height)]; [_webView setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth]; [_webView setDelegate:self]; [_webView setScalesPageToFit:YES]; [_webView loadRequest:[NSURLRequest requestWithURL:[headline link]]]; 该链接始终已为移动设备格式化。

iOS CATransform3D坐标

真的很感激这方面的任何帮助。 我在视图上应用了3D变换,需要识别渲染视图的边缘坐标,这样我就可以呈现与其相邻的另一个视图(没有任何像素间隙)。 具体来说,我希望通过动画角度来折叠像传单一样的一系列视图(“页面”)。 int dir = (isOddNumberedPage ? 1 : -1); float angle = 10.0; theView.frame = CGRectMake(pageNumber * 320, 0, 320, 460); CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity; rotationAndPerspectiveTransform.m34 = -1.0 / 2000; // Perspective rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, dir * angle / (180.0 / M_PI), 0.0f, 1.0f, 0.0f); theView.layer.transform = rotationAndPerspectiveTransform; // Now need to get […]