Questions tagged «iphone»

除非要专门针对Apple的iPhone和/或iPod touch,否则请勿使用此标签。对于不依赖于硬件的问题,请使用标签[ios]。需要考虑的更多标签是[xcode](但仅当问题与IDE本身有关时),[swift],[objective-c]或[cocoa-touch](但不包括[cocoa])。请避免有关iTunes App Store或iTunes Connect的问题。如果使用C#,请使用[mono]进行标记。

8
iOS中的NSURLConnection和基本HTTP身份验证
我需要GET HTTP request使用Basic调用一个缩写Authentication。这将是第一次将请求发送到服务器,而我已经拥有了,username & password因此不需要服务器进行授权挑战。 第一个问题: 是否NSURLConnection必须设置为同步才能进行基本身份验证?根据这篇文章的答案,如果您选择异步路由,似乎无法进行基本身份验证。 有人知道GET request不需要挑战响应就能说明基本认证的一些示例代码吗?Apple的文档显示了一个示例,但仅在服务器向客户端发出质询请求之后。 我是SDK的联网部分中的新成员,但我不确定应该使用哪个其他类来使其正常工作。(我看到了NSURLCredential该类,但似乎仅NSURLAuthenticationChallenge在客户端从服务器请求授权资源后才使用该类)。

22
iPhone:默认情况下隐藏UITableView搜索栏
我使用界面生成器创建了一个表视图,在该视图中添加了库的搜索栏和搜索显示控制器以添加搜索功能。但是,IB对其进行了设置,以便首次显示视图时,该条在屏幕顶部可见。 我想知道默认情况下如何隐藏搜索栏,但仍可以在表格视图中滚动(有关示例,请参阅Apple的Mail应用程序)。我已经打过电话scrollRectToVisible:animated:中viewDidLoad滚动表视图下来,但无济于事。默认情况下,隐藏搜索栏的首选方法是什么?


3
通过多次传递进行核心数据迁移的示例或说明?
我的iPhone应用程序需要迁移其核心数据存储,并且某些数据库非常大。苹果的文档建议使用“多次通过”来迁移数据以减少内存使用。但是,文档非常有限,并且不能很好地说明如何实际执行此操作。有人可以给我指出一个好的例子,还是详细说明如何真正实现这一目标的过程?

11
什么是PastryKit框架?
我正在尝试找到有关PastryKit Javascript Framework的所有信息。在Mobile Safari的iPhone本身上显示的《 iPhone用户指南》中似乎正在使用它,但是我找不到任何文档或API。如果您想查看它的运行情况,请打开Safari 4,将用户代理设置为iPhone 3(在“开发”菜单中),然后查看指南。 总的来说,这似乎是一种编写类似于本机iPhone应用程序的HTML / CSS / Javascript应用程序的方法。 当涉及到Javascript时,我在框架文件(我假设是)上使用了JS Beautifier,它超过3,400行!美化了(按照我的假设),它们的实现超过了1200行。 在CSS方面,我在框架CSS上使用了Clean CSS(再次假设是),结果显示了700多行。他们的执行力不足500。 是否有人在PastryKit上拥有或知道在哪里可以找到任何信息,文档或API?或者,有人可以弄清楚如何实现它吗?

12
NSTimeInterval到HH:mm:ss?
如果我的NSTimeInterval设置为200.0,是否有办法将其转换为00:03:20,我想我可以用它初始化NSDate,然后使用HH:mm:ss使用NSDateFormatter。我的问题是,有没有一种快速的方法来执行此操作,或者我必须自己分解并使用数字[NSString stringWithFormat: %02d:%02d:%02d, myHour, myMin, mySec]?

4
视图框架在viewWillAppear:和viewDidAppear之间变化:
我在应用程序中发现了一个奇怪的行为,其中一个连接IBOutlet在其视图控制器中对viewWillAppear:和的调用之间具有其连接的视图框架viewDidAppear:。这是我的UIViewController子类中的相关代码: -(void)viewWillAppear:(BOOL)animated { NSLog(@"%@", self.scrollView); } -(void)viewDidAppear:(BOOL)animated { NSLog(@"%@", self.scrollView); } 以及结果日志输出: MyApp[61880:c07] <UIScrollView: 0x1057eff0; frame = (0 0; 0 0); clipsToBounds = YES; autoresize = TM+BM; gestureRecognizers = <NSArray: 0x10580100>; layer = <CALayer: 0x1057f210>; contentOffset: {0, 0}> MyApp[61880:c07] <UIScrollView: 0x1057eff0; frame = (0 44; 320 416); clipsToBounds = YES; …

7
在资源文件夹中获取文件列表-iOS
假设我的iPhone应用程序的“资源”文件夹中有一个名为“文档”的文件夹。 有没有一种方法可以在运行时获取该文件夹中包含的所有文件的数组或某种类型的列表? 因此,在代码中,它看起来像: NSMutableArray *myFiles = [...get a list of files in Resources/Documents...]; 这可能吗?
85 iphone  ios  resources 

5
iPhone-来自本地文件URL的NSData
我有一个NSURL对象,它为我提供了本地文件的路径(在documents文件夹中)。我想NSData用此文件的内容填充对象。尝试使用,dataWithContentsOfURL:但这失败。我知道该文件存在,因为iPhoneSDK返回了路径。 有人可以告诉我如何NSData从URL本地文件中获取对象吗? 谢谢。
85 iphone  nsdata  nsurl 

4
iOS KeyChain无法从后台获取值
我目前在iOS KeyChain中存储用户名(电子邮件)以及电子邮件和密码的盐化哈希。我使用的是这里找到的ARC'ified版本。 KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil]; [wrapper setObject:APP_NAME forKey:(__bridge id)kSecAttrService]; [wrapper setObject:email forKey:(__bridge id)kSecAttrAccount]; [wrapper setObject:token forKey:(__bridge id)kSecValueData]; 当我需要在应用程序处于活动状态时为网络调用提取令牌时,一切都很好。它适用于从干净启动启动的登录以及整个网络中的所有网络调用。当应用程序在后台运行时,麻烦就开始了。 请记住,这只是偶尔发生,我还没有将其固定到特定的iOS版本或设备。 用户跳到一个位置(区域监视),我想用其状态更新服务器。我尝试将令牌从钥匙串中拔出,就像我对其他每个网络呼叫所做的一样,并更新状态。但是对于某些用户,该值为nil。没有它,我将无法更新网络内容。为什么这对大多数人有用,但对少数人却无效? KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil]; NSString *token = [wrapper objectForKey:(__bridge id)kSecValueData]; 我回到了非ARC版本的keychainwrapper,但是我仍然得到相同的结果。我对此表示感谢。这只是我用户的一小部分,但这是我要解决的问题,不用担心。提前致谢。 另外,我所有的后台工作都在backgroundTask中进行设置,以防止事情超时。我在钥匙串周围的工作上没有任何问题,但是在我的令牌填满之前,我不会让事情继续进行。 编辑 我发现我的问题是他们的钥匙串没有从后台获取值。我将在下面发布答案并接受它,因为我觉得这个问题以后可能对其他人有价值。

10
iPhone应用程序是否有现成的日历控件?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 4年前关闭。 改善这个问题 我正在为iPhone开发一个应用程序,它将显示即将发生的事件和过去的事件。我选择了一个列表视图,但是后来我意识到,日历(就像内置日历应用程序的“月”视图中显示的日历一样)将是最佳的选择。 但是,《 iPhone人机界面指南》仅提到了日期选择器,而不是日历,因此我认为没有类似的东西可用。真的吗?如果是这样,是否有人知道可以使用的第三方控件?(我可以自己写一个,但我宁愿准备一些东西,因为这是对原始项目计划的偏离)。

4
如何异步同步CoreData和REST Web服务并同时正确地将所有REST错误传播到UI中
嘿,我正在这里为我们的应用程序设计模型层。 一些要求是这样的: 它应该可以在iPhone OS 3.0+上运行。 我们的数据源是一个RESTful Rails应用程序。 我们应该使用Core Data在本地缓存数据。 客户端代码(我们的UI控制器)应尽可能少地了解任何网络内容,并应使用Core Data API查询/更新模型。 我已经检查了有关构建服务器驱动的用户体验的WWDC10会议117,并花了一些时间检查了Objective Resource,Core Resource和RestfulCoreData框架。 Objective Resource框架不会自己与Core Data对话,而仅仅是REST客户端实现。Core Resource和RestfulCoreData都假定您在代码中与Core Data进行了对话,并且它们解决了模型层背景中的所有细节。 到目前为止,一切看起来还不错,尽管我最初虽然Core Resource或RestfulCoreData都可以满足上述所有要求,但是...有几件事似乎似乎都无法正确解决: 将本地更新保存到服务器时,不应阻止主线程。 如果保存操作失败,则错误应传播到UI,并且不应将任何更改保存到本地Core Data存储。 当您调用- (BOOL)save:(NSError **)error托管对象上下文时,核心资源恰巧将所有请求发送给服务器,因此能够以某种方式向服务器提供基础请求的正确NSError实例失败。但是它将阻塞调用线程,直到保存操作完成。失败。 RestfulCoreData使您的-save:调用保持完整,并且不会为客户端线程引入任何额外的等待时间。它仅注意NSManagedObjectContextDidSaveNotification,然后在通知处理程序中向服务器发出相应的请求。但这种方式的-save:呼叫总是成功完成(当然,考虑到核心数据是好的,与保存的更改)和客户端的代码,居然叫它没有办法知道节省,可能也没有传播到因为一些服务器404或421或任何发生服务器端错误。甚至更多,本地存储变得可以更新数据,但是服务器永远不知道这些更改。失败。 因此,我正在寻找解决所有这些问题的可能的解决方案/通用做法: -save:在网络请求发生时,我不希望调用线程在每次调用时都阻塞。 我想以某种方式在用户界面中收到一些同步操作出错的通知。 如果服务器请求失败,我也希望实际的核心数据保存失败。 有任何想法吗?

5
iCloud基础知识和代码示例
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 作为一个初学者,我正在为iCloud奋斗。有一些示例,但是它们通常都非常详细(在开发人员论坛上,有一个针对iCloud和CoreData的示例非常庞大)。在苹果的文档都OK,但我仍然无法看到大局。因此,请允许我,其中一些问题是非常基本的,但可能很容易回答。 上下文:我有一个非常简单的iCloud应用程序正在运行(下面是完整的示例代码)。仅向用户显示一个UITextView,并且他/她的输入保存在一个名为text.txt的文件中。 txt文件被推送到云中,并可供所有设备使用。完美运行,但是: 主要问题:不使用iCloud的用户呢? 启动应用程序时(请参见下面的代码),我会检查用户是否启用了iCloud。如果启用了iCloud,则一切正常。该应用程序继续运行,并在云中查找text.txt。如果找到,它将加载它并显示给用户。如果在云中找不到text.txt,它将仅创建一个新的text.txt并将其显示给用户。 如果用户未启用iCloud,则不会发生任何事情。如何使非iCloud用户仍然可以使用我的文本应用程序?还是我只是忽略它们?我是否需要为非iCloud用户编写单独的功能?即我仅从documents文件夹中加载text.txt的函数? 苹果写道: 以与对待应用程序沙箱中所有其他文件相同的方式对待iCloud中的文件。 但是,就我而言,再也没有“普通”应用程序沙箱了。在云中。还是我总是先从磁盘上加载text.txt,然后与iCloud检查是否还有最新信息? 相关问题:文件结构-沙箱与云 也许我的主要问题是对iCloud应该如何工作的根本误解。创建UIDocument的新实例时,我将不得不覆盖两个方法。首先- (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError **)outError从云-(id)contentsForType:(NSString *)typeName error:(NSError **)outError中获取文件,然后将文件添加到云中。 我是否必须合并单独的功能,这些功能也会将text.txt的本地副本保存到我的沙箱中?这对非iCloud用户有效吗?据我了解,iCloud会自动保存text.txt的本地副本。因此,我不需要将任何内容保存到应用程序的“旧”沙箱中(即,它曾经在iCloud之前的旧年代使用)。目前,我的沙箱完全是空的,但我不知道这是否正确。我是否应该在其中保留另一个text.txt副本?感觉就像混乱的数据结构...因为云中有一个text.txt,设备上的iCloud沙箱中有一个text.txt(即使我离线也可以使用),而旧的沙箱中的第三个则是。我的应用程式... 我的代码:一个简单的iCloud示例代码 这大致基于我在开发人员论坛和WWDC会话视频中找到的示例。我将其剥离到最低限度。我不确定我的MVC结构是否良好。该模型位于AppDelegate中,并不理想。欢迎提出任何改善建议。 编辑:我试图提取主要问题并将其发布[此处]。4 概述: 最重要的一点是从云中加载text.txt: // AppDelegate.h // iCloudText #import <UIKit/UIKit.h> @class ViewController; @class MyTextDocument; @interface AppDelegate : UIResponder <UIApplicationDelegate> { NSMetadataQuery *_query; } @property (strong, nonatomic) UIWindow …

9
如何在iOS中的小键盘上添加“完成”按钮
因此,小键盘默认情况下不带有“完成”或“下一步”按钮,因此我想添加一个。在iOS 6及以下版本中,有一些技巧可以在键盘上添加按钮,但它们似乎在iOS 7中不起作用。 首先我订阅显示通知的键盘 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 然后,当键盘显示时,我尝试添加一个按钮: - (void)keyboardWillShow:(NSNotification *)note { // create custom button UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeSystem]; doneButton.frame = CGRectMake(0, 50, 106, 53); doneButton.adjustsImageWhenHighlighted = NO; [doneButton setTitle:@"Done" forState:UIControlStateNormal]; [doneButton addTarget:self action:@selector(dismissKeyboard) forControlEvents:UIControlEventTouchUpInside]; // locate keyboard view UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.