小编Coo*_*coa的帖子

iPhone同步离线应用程序

我正在研究构建一个与在线工作一样离线的应用程序.由于应用程序在脱机时无法与服务器通信,因此需要进行某种程度的同步.

在计划iPhone同步的离线操作时,有哪些好的工具可供阅读并开始考虑?

我必须自己创建哪些工具,而不是苹果已经提供的工具来帮助解决这个问题?

iphone cocoa cocoa-touch data-synchronization

28
推荐指数
2
解决办法
7943
查看次数

在Objective-C中合并NSArrays

我有一个NSDictionary,其中每个键指向一个数组.我后来想要将所有值合并到一个数组中.有没有办法使用API​​来做一些比说更有效的事情:

NSArray *anArray = [someDictionary allValues];
NSMutableArray *newArray = [NSMutableArray array];
start outter loop on anArray
   start inner loop on objects in anArray
     add objectAtIndex to newArray
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c foundation

28
推荐指数
3
解决办法
2万
查看次数

iPhone应用程序中的异步与同步与线程

我正处于一个应用程序的设计阶段,该应用程序将使用REST Web服务,并且就使用异步vs同步与线程而言有点两难.这是场景.

假设您有三个选项可供深入研究,每个选项都有自己的基于REST的资源.我可以通过同步请求懒洋洋地加载每个请求,但这会阻止UI并阻止用户在检索数据时点击后退导航按钮.这种情况几乎适用于应用程序需要登录屏幕之外的任何地方.由于这个原因,我看不出有任何理由使用同步HTTP请求与异步.唯一有意义的是让工作线程发出同步请求,并在请求完成时通知主线程.这样可以防止阻塞.接下来的问题是基准标记您的代码并查看哪些代码具有更多开销,线程同步请求或异步请求.

异步请求的问题是您需要设置智能通知或委派系统,因为您可以在任何给定时间对多个资源发出多个请求.它们的另一个问题是,如果我有一个类,比如一个处理我所有数据的单例,我就不能在getter方法中使用异步请求.意思是以下不会:

 - (NSArray *)users {
     if(users == nil)
        users = do_async_request // NO GOOD

     return users;
 }
Run Code Online (Sandbox Code Playgroud)

而以下内容:

 - (NSArray *)users {
    if(users == nil)
      users == do_sync_request // OK.

    return users;
 }
Run Code Online (Sandbox Code Playgroud)

你也可能有优先权.我的意思是优先考虑的是,如果你在iPhone上查看Apple的Mail应用程序,你会发现他们首先吸取你的整个POP/IMAP树,然后再发出第二个请求来检索你的消息的前两行(默认).

我想我的专家问题是这个问题.您何时使用异步,同步,线程 - 何时在线程中使用异步/同步?您设置了什么样的委派系统来了解异步请求完成时要执行的操作?您是否优先考虑异步请求?

对于这个太常见的问题,有一系列解决方案.破解一些东西很简单.问题是,我不想破解,我希望拥有一些简单易用的东西.

iphone rest multithreading cocoa-touch objective-c

26
推荐指数
3
解决办法
2万
查看次数

开源Cocoa/Cocoa-Touch POP3/SMTP库?

我正在寻找一个与POP3/SMTP服务器对话的示例应用程序.而不是用BSD套接字和CFNetwork类型调用来重新发明轮子,我很好奇是否有任何开源库已经处理了大量的脏工作?我已经尝试过谷歌搜索,没有任何运气.

也许有一些东西我忽略了简化这一点.

谢谢.

iphone cocoa cocoa-touch pop3 objective-c

25
推荐指数
2
解决办法
2万
查看次数

Objective-C中的动态即时类可能吗?

我的问题如下.我有一个简单地采用XML摘录和XPath的方法.然后它应该为我创建一个XML摘录的对象数组.这意味着如果我传递了以下XML:

<user>
  <name>Bob</name>
  <age>50</age>
</user>
Run Code Online (Sandbox Code Playgroud)

我的方法将实例化User类的实例,并使用键值编码来设置实例变量.这是相当直接的.唯一的问题是我来自大多数脚本背景,并试图看看是否可以将方法传递给类名.现在它正在做一个User类,后来它可能是一个Cars类,然后是一个Home类.在保持代码尽可能抽象的同时,从这种不同类型的方法实例化对象的最佳方法是什么?

xml iphone cocoa cocoa-touch objective-c

21
推荐指数
2
解决办法
8487
查看次数

以编程方式打开设置应用程序(iPhone)

目前是否可以从第三方iPhone应用程序转到Apple的设置应用程序?目前可以打开邮件,野生动物园等.设置怎么样?

iphone cocoa-touch

20
推荐指数
2
解决办法
3万
查看次数

文字NSString是自动释放还是需要发布?

使用以下表示法创建字符串时:

NSString *foo = @"Bar";
Run Code Online (Sandbox Code Playgroud)

是否需要发布foo?或者foo在这种情况下自动释放?

cocoa-touch memory-management objective-c literals nsstring

19
推荐指数
3
解决办法
7508
查看次数

在iPhone上COMET(服务器推送到客户端)

我正在寻求从我的服务器到我的iPhone应用程序建立某种套接字/ COMET类型功能.基本上,每当用户设法在服务器上设置任意对象'脏'时,例如,更新他们的地址......反馈应该从服务器推送到任何保持对服务器进行实时轮询的客户端.我想这是一个流行词,就是COMET.我知道网页浏览器应用程序有DWR,所以我想,也许最好在我的每个控制器中设置一个隐藏的UIWebView,这样我就可以从他们的javascript框架中开箱即用COMET了?有更优雅的方法吗?

iphone cocoa-touch comet http objective-c

19
推荐指数
1
解决办法
2万
查看次数

单击UITableViewCell中的UITextField

我有一个问题,当在a textField中单击a时UITableViewCell,该方法tableView:didSelectRowAtIndexPath:不会被调用.问题是,我需要将我滚动tableView到正确的位置,否则键盘会在第一个响应者上方.

我必须像这样移动代码:

[[self tableView] scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
Run Code Online (Sandbox Code Playgroud)

进入我的tableView委托方法和我的UITextField委托方法,textFieldDidBeginEditing:.

是创建新方法的最佳方法,将单击的单元格/文本字段的indexPath传递给它,并从tableView委托和UITextField委托调用该方法?更好的办法吗?

iphone cocoa-touch objective-c

19
推荐指数
3
解决办法
3万
查看次数

为什么git在这个git推送中推向两个分支?

什么可能导致'git push'尝试并提交两个分支?我有自己的分支,我正在研究共享仓库和主分支.现在我只是想推到我的个人分支,经历了很好,但它也试图推动掌握并被拒绝.看起来像这样:

foo$ git push
Counting objects: 38, done.
Delta compression using 2 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (21/21), 9.73 KiB, done.
Total 21 (delta 14), reused 0 (delta 0)
To ssh://example.com/project.git
   8184634..86b621e  mybranch -> mybranch
 ! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'ssh://example.com/project.git'  
Run Code Online (Sandbox Code Playgroud)

我的配置如下所示:

remote.origin.url=ssh://example.com/project.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.mybranch.remote=origin
branch.mybranch.merge=refs/heads/mybranch  
Run Code Online (Sandbox Code Playgroud)

埃斯科指出,它正在推动两者,因为它们在我的配置中.如果我想要同时推动两者,而不是同时推动怎么办?当我检查mybranch并且git push时,我显然意味着推动mybranch而不是掌握.有时候我会检查master,编辑代码,并且还想提交/推送它.有两种方法可以共存吗?

git version-control

18
推荐指数
1
解决办法
8363
查看次数