Tag: iphone

从iPhone发送多部分请求到Ruby on Rails(RoR)服务器

我搜索过这个问题并发现了类似的问题,但没有人喜欢它。 我正在手动构建请求 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:TEST_URL]]; [request setHTTPMethod:@”POST”]; NSString *boundary = [NSString stringWithString:@”—————————14737809831466499882746641449″]; NSString *contentType = [NSString stringWithFormat:@”multipart/form-data; boundary=%@”, boundary]; [request addValue:contentType forHTTPHeaderField:@”Content-Type”]; NSMutableData *body = [NSMutableData data]; [body appendData:[[NSString stringWithFormat:@”–%@\r\n\n”, boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithFormat:@”Content-Disposition: form-data; name=upload[jsondata]\r\n\n Content-Type: application/octet-stream\r\n\r\n”, [dateFormatter stringFromDate:startDate]] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[json dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithFormat:@”\r\n–%@–\r\n”, boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [request setHTTPBody:body]; […]

将JSON从iOS发布到Rails 3.1(Stringify_keys错误)

我正试图通过json从iPhone应用程序在我的rails后端创建用户帐户。 以下是当前发布到服务器的内容: Started POST “/patients” for 127.0.0.1 at 2011-11-27 20:52:29 -0800 Processing by PatientsController#create as HTML Parameters: {“patient”=>”{\”password\”:\”password\”,\”password_confirmation\”:\”password\”,\”email\”:\”testagain\”}”} WARNING: Can’t verify CSRF token authenticity Completed 500 Internal Server Error in 1ms NoMethodError (undefined method `stringify_keys’ for #): app/controllers/patients_controller.rb:43:in `new’ app/controllers/patients_controller.rb:43:in `create’ 通过直接从浏览器发布,这些是提交的参数: Parameters: {“utf8″=>”✓”, “authenticity_token”=>”H2iYdzdfokQs91AAozb+taMTdV2y5xLRaCni5XKQN4w=”, “patient”=>{“email”=>”test”, “password”=>”[FILTERED]”, “password_confirmation”=>”[FILTERED]”}, “commit”=>”Create Patient”} 从我在别处读到的内容中,stringify_keys意味着操作需要一个哈希(我以为我几乎重建了),因为我使用这个代码来创建一个新用户: @patient = Patient.new(params[:patient]) 我还认为,如果我使用JSON格式发布,真实性令牌无关紧要……这有关系吗? […]

Authlogic和iPhone应用程序登录

这对我来说是一个头脑。 我已经查看了关于SO的所有类似问题,但没有一个被certificate是令人满意的。 这是我的目标。 我使用Authlogic设置了完美的rails 3 app设置。 我一直在使用Objective Resource(http://iphoneonrails.com/)来连接我的iPhone应用程序和我的Rails应用程序,它一直运行良好。 现在是时候添加身份validation了,我无法弄清楚。 我的iPhone项目中有一个UserSession类,带有用户名和密码字段。 当应用程序启动时,我会显示一个包含用户名和密码字段的登录屏幕。 单击按钮后,iPhone应用程序将尝试创建UserSession。 我从http://www.corprew.org/blog/2010/01/27/authlogic-and-objectiveresource/获取了我的代码。 us.username = usernameField.text; us.password = passwordField.text; NSError * err = nil; if(![us saveRemoteWithResponse:&err]) { NSLog(@”%d”, err); NSLog(@”whoops, error”); } 当我运行该代码时,日志显示“0”和“哎呀,错误”意味着UserSession没有保存。 对于正确和不正确的登录都会发生这种情况。 另外,我在saveRemote(“我在saveRemote”等)中放置了令牌注释,而这些注释从未出现在我的日志中。 这里有什么想法? 如果您希望我发布更多代码,请告诉我们。 我会和这个一起过夜。

iPhone NSTimeZone:localTimeZone混乱

从我的理解,呼唤 NSLog(@”Local Time Zone %@”,[[NSTimeZone localTimeZone] name]); 为您提供设备的本地时区。 它给我的是“US / Central” ,我在[NSTimeZone abbreviationDictionary]的缩写列表中找不到任何地方,或者[NSTimeZone knownTimeZoneNames]中的时区名称列表。 这个来自哪里? 我需要将当前设备时区传递给Rails应用程序,它理解“澳大利亚/悉尼”或“美国/芝加哥”之类的内容 ,但不了解“US / Central” 。 我如何获取localTimeZone给我的内容并将其转换为Rails可以理解的字符串(即knownTimeZoneNames中的任何时区,它应该是系统知道的所有时区名称?)

Objective C + Reskit – 如何用密钥包装我的字典以避免格式化问题?

我正在尝试用密钥包装我的HTTP POST请求。 换句话说,我想转此: { “category_id”=>”1”, “food_name_token”=>”Pizza”, “id”=>”1” } 进入这个: { “dish” => { “category_id”=>”1”, “food_name_token”=>”Pizza”, “id”=>”1″ } } 我尝试在RestKit中使用’rootKeyPath’方法: serializationMapping.rootKeyPath = @”dish”; 但这给了我这个奇怪的格式化字符串: { “dish”=> “{ \n \”category_id\” = 1; \n \”food_name_token\” = Pizza; \n id = 1; \n} “} 它使用等号和分号代替箭头和逗号,并添加所有这些换行符和转义反斜杠。 知道为什么吗? 关于我能做什么的任何建议? PS我正在使用Rails后端

大量位置地理编码的策略

我有一个应用程序使用Google Maps API对纬度/长度对之间的距离进行地理编码,以便在手机上显示靠近您的人(目前是​​Android,在iPhone上工作)。 问题在于,即使有40个用户的测试组,我们也需要花费10秒钟来完成计算并将结果发送回用户。 虽然10秒听起来很长时间,但就客户端应用而言,这并不是一个问题,因为它不是人们位置的实时更新(更新每隔几分钟发生一次)。 显然这是一个问题,因为我们显然喜欢增加到数十甚至数十万用户。 我很好奇是否有其他人在使用Google Maps API计算大量数据点之间的距离方面有任何经验? 另外,我们在服务器上使用Rails,这是所有位置计算正在进行的地方。 电话仅显示地图并使用纬度/经度坐标更新服务器。

从JSON创建Devise中的用户

我正在努力将运行Devise的Rails 3.1应用程序与我的iOS应用程序集成以进行用户身份validation。 我希望用户能够从应用程序注册,然后我可以存储这些凭据以便稍后登录。 使用RestKit,我这样做: -(IBAction)registerUser:(id)sender { NSDictionary *params = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects: self.email.text, self.password.text, self.confirmPassword.text, nil] forKeys:[NSArray arrayWithObjects: @”email”, @”password”, @”password_confirmation”, nil]]; [[RKClient sharedClient] post:@”/users.json” params:params delegate:self]; } /users.json url转到: user_registration POST /users(.:format) {:action=>”create”, :controller=>”devise/registrations”} (根据rake路由)。 看来post调用接受不同的格式,所以我认为它会接受JSON。 我的post请求被序列化为JSON,并被发送出去。 服务器获取它,这是日志: Started POST “/users.json” for 129.21.84.10 at 2012-01-12 15:33:57 -0500 Processing by Devise::RegistrationsController#create as JSON Parameters: {“password”=>”[FILTERED]”, […]

在两个不同的系统之间同步对象,最好的方法?

我正在使用基于XML的有效负载在iPhone和网站之间同步两个业务对象,并且愿意为最佳例程征求一些想法。 这个问题的本质是相当通用的,我可以看到它适用于需要在Web实体和客户端(桌面,移动电话等)之间同步业务对象的各种不同系统。 可以双方编辑,删除和更新业务对象。 双方都可以在本地存储对象,但同步仅在iPhone端启动,以便断开连接查看。 所有对象都有一个updated_at和created_at时间戳,并且两边都有一个RDBMS支持(iPhone端的SQLite和网络上的MySQL ……再次我不认为这很重要)并且手机确实记录了最后一次尝试同步。 否则,不存储其他数据(此刻)。 您将使用什么算法来最小化系统之间的网络聊天以进行同步? 如果“软删除”不是一个选项,你将如何处理删除? 您会添加哪些数据模型更改以实现此function?

有没有更简单的方式来显示$ currency格式?(特别是逗号)我可以将RE与Objective C代码集成吗?

我使用X代码4。 并制作美国货币计算器。 我的目标是以适当的格式显示数字? 喜欢 1,234美元 $ 12,100名 $ 1,23,123 我不想通过附加和字符串来做到这一点。 有没有更简单的方法,以便我可以集成任何RE或任何ruby或Python。 这将有助于我制作货币格式。 请告诉我更简单的方法而不是长时间的编程。

为rails应用程序构建iphone客户端的最佳方法是什么?

我有一个相当标准的rails应用程序,并希望能够从iPhone应用程序访问基本的CRUD(创建,更新,删除)操作以及我添加的查询。 Rails或多或少开箱即可为这些操作提供REST API。 在iphone上处理REST / XML部分的最佳方法是什么,是否有任何好的Objective-C库已经做过这种事情了? 操作还需要与特定用户相关联(即经过身份validation)。