我正在构建一个与Ruby on Rails后端对话的iPhone应用程序.Ruby on Rails应用程序还将为Web用户提供服务.restful_authentication插件是提供快速和可自定义的用户身份验证的绝佳方式.但是,我希望iPhone应用程序的用户拥有一个帐户,该帐户由存储在新列中的电话的唯一标识符([[UIDevice device] uniqueIdentifier])自动创建.之后,当用户准备创建用户名/密码时,帐户将更新为包含用户名和密码,保留iPhone唯一标识符.用户在设置用户名/密码之前不应该访问该网站.但是,他们可以使用iPhone应用程序,因为应用程序可以使用它的标识符对自身进行身份验证.
修改restful_authentication以执行此操作的最佳方法是什么?创建一个插件?或者修改生成的代码?
那么替代框架呢,比如AuthLogic.允许iPhone将生成的身份验证令牌锁定到其UUID的最佳方法是什么,但是让用户稍后创建用户名/密码?
我想使用iPhone SDK,使用一堆图像(或者可能是一组URL来下载图像)并使用用户滑动一次一个地全屏显示它们,以便平滑地为堆栈中的下一个图像设置动画.Apple的Photo.app似乎是这样做的.此外,如果尚未检索到图像,我想显示进度指示器.
你能指点我的示例代码并解释如何实现这种技术吗?
这对我来说似乎是一个反复出现的问题,因为我似乎在过去几年里都倾向于移动应用程序.除了网络用户,我还要对移动用户进行身份验证和授权.我需要使其足够无缝,以便用户可以轻松拥有一个Web帐户,而不会中断他们的数据.我希望解决方案在主题中是架构,而不是特定于任何语言/框架.
要求/假设
考虑的架构
您认为什么是好的解决方案?其中之一,还是其他什么?
architecture authentication mobile authorization web-services
各种格式的电话号码数据(我之所以选择这些,是因为进来的数据不可靠而且不是预期的格式):
+1 480-874-4666
404-581-4000
(805) 682-4726
978-851-7321, Ext 2606
413- 658-1100
(513) 287-7000,Toll Free (800) 733-2077
1 (813) 274-8130
212-363-3200,Media Relations: 212-668-2251.
323/221-2164
Run Code Online (Sandbox Code Playgroud)
我的Ruby代码提取所有数字,删除美国国家代码的任何前导1,然后使用前10位数字以所需格式创建"新"电话号码:
nums = phone_number_string.scan(/[0-9]+/)
if nums.size > 0
all_nums = nums.join
all_nums = all_nums[0..0] == "1" ? all_nums[1..-1] : all_nums
if all_nums.size >= 10
ten_nums = all_nums[0..9]
final_phone = "#{ten_nums[0..2]}-#{ten_nums[3..5]}-#{ten_nums[6..9]}"
else
final_phone = ""
end
puts "#{final_phone}"
else
puts "No number to fix."
end
Run Code Online (Sandbox Code Playgroud)
结果非常好!
480-874-4666
404-581-4000
805-682-4726
978-851-7321
413-658-1100
513-287-7000
813-274-8130
212-363-3200
323-221-2164
Run Code Online (Sandbox Code Playgroud)
但是,我认为有更好的方法.你能否重构这个更有效,更清晰,更有用?
考虑到Cocoa-Touch(iPhone上的Objective-C)没有NSTime,并且NSStrings和NSZtring的时区分别是两次,你如何计算当前LOCAL时间是否在这两次之间.请记住,时间字符串中的日期并不重要,并且填充了虚拟日期.
例如:
TimeZone: Pacific Time (US & Canada)
Start Time: 2000-01-01T10:00:00Z
End Time: 2000-01-01T17:00:00Z
Local Time: now
Run Code Online (Sandbox Code Playgroud)
如何确认当地时间是否在指定的时间范围之间(确保首先将开始/结束时间转换为正确的时区)?
使用iPhone 3.0 SDK中的MapKit,可以创建符合MKAnnotation协议的对象.将这些加载到MKMapView非常简单.但是,当用户滚动MKMapView时,是时候加载新的注释了.请求新对象的可能位置是mapView:regionDidChangeAnimated:在更改地图区域时调用,然后使用新注释添加/替换注释.
具体来说,我想查询Core Data以检索当前MKCoordinateRegion(mapView.region)中存在的所有对象,以便我只加载将在屏幕上显示的对象.Core Data中的对象具有纬度和经度属性(CLLocation属性在类'.m/.h中定义,我可以从中手动填充)并将其用于NSPredicate以查找附近的对象.
由于Core Data数据库中存在多少个对象的性质,我们不能将所有对象预加载为注释,否则我们将耗尽内存(并且它会非常慢).
如何仅检索当前mapview边界中具有位置的对象?
iphone ×4
objective-c ×2
ruby ×2
architecture ×1
core-data ×1
mapping ×1
mobile ×1
refactoring ×1
time ×1
timezone ×1
web-services ×1