Tag: iphone

iPhone应用程序名称可用性

有没有办法来检查是否可以使用iphone应用程序名称? 在iTunes上进行search并检查是否有已经存在的应用程序可以指示iPhone应用程序名称可用或不可用?

AFNetworking和离线模式下的SDURLCache不起作用

我正在使用AFNetworking和SDURLCache来处理所有的networking操作。 我有这样的SDURLCache设置: SDURLCache *urlCache = [[SDURLCache alloc] initWithMemoryCapacity:1024*1024*2 // 2MB mem cache diskCapacity:1024*1024*15 // 15MB disk cache diskPath:[SDURLCache defaultCachePath]]; [urlCache setMinCacheInterval:1]; [NSURLCache setSharedURLCache:urlCache]; 我所有的请求都使用cachePolicy NSURLRequestUseProtocolCachePolicy ,根据苹果文档,它的工作原理是这样的: 如果请求中不存在NSCachedURLResponse,则从原始源获取数据。 如果请求存在caching响应,则URL加载系统检查响应以确定是否指定内容必须重新生效。 如果内容必须重新确认,则与原始源进行连接以查看是否已经改变。 如果没有改变,则从本地caching返回响应。 如果发生了变化,则从原始源获取数据。 如果caching的响应没有指定内容必须重新生效,则检查响应中指定的最大使用期限或到期date。 如果caching的响应足够近,则从本地caching中返回响应。 如果响应被确定为陈旧,则检查起源的新数据。 如果更新的数据可用,则从源发送源获取数据,否则从caching中返回。 所以,即使在飞机模式下,只要caching没有陈旧,一切都可以正常工作。 当caching过期(max-age等)时,失败块被调用。 我一直在SDURLCache里面挖掘一点,这个方法返回一个有效数据的响应(我把数据parsing成一个string,它包含caching的信息) – (NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request { request = [SDURLCache canonicalRequestForRequest:request]; NSCachedURLResponse *memoryResponse = [super cachedResponseForRequest:request]; if (memoryResponse) { […]

UITableViewCell中的水平UIScrollView

我试图创build完全相同的效果,在AppStore应用程序中查看屏幕截图:在UITableView中,我有自定义的UITableViewCell的子类。 其中一个是为了展示一些产品的预览,比如说4张图片。 我希望它们能够像AppStore一样展示应用程序的屏幕截图:在带有UIPageControl的水平UIScrollView中。 所以我添加我的UIScrollView和我的UIPageControl到我的UITableViewCell,就像这样: @implementation phVolumePreviewCell – (id)init { if (self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kVolumePreviewCellIdentifier]) { [self setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; [self setSelectionStyle:UITableViewCellSeparatorStyleNone]; previews = [[NSMutableArray alloc] initWithCapacity:4]; for (int i = 0; i < 4; i++) { [previews addObject:@"dummy"]; } scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero]; [scrollView setPagingEnabled:YES]; [scrollView setBackgroundColor:[UIColor grayColor]]; [scrollView setIndicatorStyle:UIScrollViewIndicatorStyleBlack]; [scrollView setShowsHorizontalScrollIndicator:YES]; [scrollView setBounces:YES]; [scrollView […]

AVFoundation + AssetWriter:通过图像和audio生成电影

我必须从我的iPhone应用程序包含UIImage从NSArray中导出电影,并添加一些.caf格式的audio文件,必须在预先指定的时间开始。 现在我已经能够使用AVAssetWriter(经过这个和其他网站上的许多问题和答案)导出包含图像的video部分,但似乎找不到一种方法来添加audio文件来完成电影。 这是我迄今得到的 -(void) writeImagesToMovieAtPath:(NSString *) path withSize:(CGSize) size { NSLog(@"Write Started"); NSError *error = nil; AVAssetWriter *videoWriter = [[AVAssetWriter alloc] initWithURL: [NSURL fileURLWithPath:path] fileType:AVFileTypeQuickTimeMovie error:&error]; NSParameterAssert(videoWriter); NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys: AVVideoCodecH264, AVVideoCodecKey, [NSNumber numberWithInt:size.width], AVVideoWidthKey, [NSNumber numberWithInt:size.height], AVVideoHeightKey, nil]; AVAssetWriterInput* videoWriterInput = [[AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeVideo outputSettings:videoSettings] retain]; AVAssetWriterInputPixelBufferAdaptor *adaptor = [AVAssetWriterInputPixelBufferAdaptor assetWriterInputPixelBufferAdaptorWithAssetWriterInput:videoWriterInput sourcePixelBufferAttributes:nil]; NSParameterAssert(videoWriterInput); […]

iPhone耳机插孔 – 读入数据?

我有一个连接到电池供电的显示器的小设备。 当我转动设备上的轮子时,显示器将显示诸如何时开始转动车轮以及车轮转动的速度等信息。 我相信该设备正在通过3.5毫米audio插孔发送某种磁脉冲或其他东西。 而不是将设备连接到它的原始显示器,我想连接到我的iPhone和读取相同的数据。 电源线末端有一个3.5毫米的audio插孔,通常像耳机一样适合iPhone使用。 我已经研究过像HiJack这样的项目,但是我不确定如何使用我收到的数据(或者当我收到数据的时候实际来自哪里),或者我甚至可以在这种情况下使用它。 我可以通过iPhone的audio插孔从外部设备读取(到iPhone的)数据吗? 如果是的话,你build议我看看什么框架/库? 我已经看过苹果公司的AurioTouch ,但它看起来相当复杂,并不是非常简单。

我如何才能知道iPhone用户目前是否有密码设置和encryptionfunction?

我正在写一个iPhone应用程序,要求对其数据进行encryption。 我已经学会了如何通过设置NSFileProtectionComplete属性来打开文件的encryption。 我也知道如何检查iPhone版本,以确保它们运行的​​是iOS 4.0或更高版本。 我已经意识到,如果用户没有select密码,并且没有在设置>常规>密码locking屏幕上专门启用数据保护,那么数据实际上不受保护。 我想popup一个警告,并告诉用户他们必须启用密码并打开数据保护(需要在前4个iPhone上进行备份和恢复),然后退出应用程序(如果他们没有密码的话)并启用数据保护。 无论如何,我无法弄清楚这些设置的状态。 我发现的所有API,比如UIApplication中的“protectedDataAvailable”,如果数据保护被禁用,所有API都会成功。

UIKeyboardFrameBeginUserInfoKey&UIKeyboardFrameEndUserInfoKey

在“pipe理键盘” 文档中 : UIKeyboardFrameBeginUserInfoKey包含CGRect的NSValue对象的关键字,用于标识屏幕坐标中键盘的起始帧 。 由于界面方向的改变,这些坐标不考虑应用于窗口内容的任何旋转因子。 因此,在使用它之前,可能需要将矩形转换为窗口坐标(使用convertRect:fromWindow:方法)或查看坐标(使用convertRect:fromView:方法)。 UIKeyboardFrameEndUserInfoKey包含CGRect的NSValue对象的关键字,用于标识屏幕坐标中键盘的结束帧 。 由于界面方向的改变,这些坐标不考虑应用于窗口内容的任何旋转因子。 因此,在使用它之前,可能需要将矩形转换为窗口坐标(使用convertRect:fromWindow:方法)或查看坐标(使用convertRect:fromView:方法)。 start frame和end frame的含义是什么? 他们有什么区别?

contentOffset在UIScrollView中做什么?

UIScrollView contentOffset属性的用法是什么?

int,NSInteger和NSUInteger之间的区别

int , NSInteger和NSUInteger在Objective-C中的主要区别是什么? 哪一个更适合在应用程序中使用,为什么?

传递一个类作为参数?

我一直相信可以通过一个类作为方法参数,但是我在实现这个概念时遇到了麻烦。 现在我有这样的东西: – (id)navControllerFromView:(Class *)viewControllerClass title:(NSString *)title imageName:(NSString *)imageName { viewControllerClass *viewController = [[viewControllerClass alloc] init]; UINavigationController *thisNavController = [[UINavigationController alloc] initWithRootViewController: viewController]; thisNavController.tabBarItem = [[UITabBarItem alloc] initWithTitle: title image: [UIImage imageNamed: imageName] tag: 3]; return thisNavController; } 我这样称呼它: rootNavController = [ self navControllerFromView:RootViewController title:@"Contact" imageName:@"my_info.png" ]; 这张照片有什么问题?