我正在尝试使用我的Rails应用程序使用APNS gem.几个月前我最初设置了这个,并且推送到iOS设备的通知工作顺利.现在,我的应用程序正在运行,我发现通知不会再出现了.该APNS宝石已经有一段时间没有更新,所以我已经试过它的各种后叉,所有达到同样的效果.
这是我正在做的事情:
APNS.host = 'gateway.push.apple.com'
APNS.pem = Rails.root + "lib/push_production.pem"
APNS.port = 2195
APNS.send_notification(device_token, "Test send" )
Run Code Online (Sandbox Code Playgroud)
结果呢?
=> nil
Run Code Online (Sandbox Code Playgroud)
没有任何方法的反馈,没有我可以检查的日志文件.我已经尝试过生成和重新生成我的证书; 一切似乎都没问题.我尝试用各种方式表达我的设备令牌,没有尖括号,字符组之间没有空格...... APNS并不关心.
考虑到涉及的活动部件的数量,我知道这是一个棘手的问题.但有人可以建议去哪里看看吗?
我正在为Mac和iOS开发一个应用程序,为此我想提供一个IAP来解锁全部功能.理想情况下,客户可以在其他iOS设备和Mac上恢复非消耗品购买.
虽然IAP文档清楚地表明可以在Mac和iOS上进行非消费品购买,但是对于是否可以在一个平台上进行单次购买而在另一个平台上进行购买则没有任何意义.任何人都可以提供这个问题的答案吗?
我正在尝试转换UISearchBar,就像在Mobile Safari中一样:触摸搜索字段,它会在位置字段缩小时增长.
我改变搜索区域的宽度和位置的当前动画仅为位置设置动画:在它滑动到正确位置之前,它只是捕捉到正确的宽度.这是我的代码:
[UIView beginAnimations:@"searchGrowUp" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
CGFloat findFieldWidth = findField.frame.size.width;
CGFloat urlFieldWidth = urlField.frame.size.width;
CGRect findFieldFrame = findField.frame;
CGRect urlFieldFrame = urlField.frame;
findFieldFrame.origin.x = findFieldFrame.origin.x - 150.0f;
findFieldFrame.size.width = findFieldWidth + 150.0f;
urlFieldFrame.size.width = urlFieldWidth - 150.0f;
urlField.frame = urlFieldFrame;
findField.frame = findFieldFrame;
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
为了在这里介绍它,我稍微修改了这段代码,但我希望这给出了要点.
任何猜测为什么会发生这种情况将不胜感激!
干杯,亚伦.
我的Rails应用程序中有一种情况,我需要根据当前的运行时状态包含任意模块.该模块提供仅在特定条件为真时才需要的自定义应用程序代码.基本上,我从当前上下文中提取公司名称,并将其用作模块及其定义的文件名:
p = self.user.company.subdomain + ".rb"
if File.exists?(Rails.root + "lib/" + p)
include self.class.const_get(self.user.company.subdomain.capitalize.to_sym)
self.custom_add_url
end
Run Code Online (Sandbox Code Playgroud)
我的测试模块如下所示:
module Companyx
def custom_add_url
puts "Calling custom_add_url"
end
end
Run Code Online (Sandbox Code Playgroud)
现在在控制台中,这实际上工作正常.我可以拉一个用户并包含这样的模块:
[1] pry(main)> c = Card.find_by_personal_url("username")
[2] pry(main)> include c.class.const_get(c.user.company.subdomain.capitalize)=> Object
[3] pry(main)> c.custom_add_url
Run Code Online (Sandbox Code Playgroud)
调用custom_add_url
如果我尝试从我的模型中运行include行,我会得到
NoMethodError: undefined method `include' for #<Card:0x007f91f9094fb0>
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议为什么include语句可以在控制台上工作,但不能在我的模型代码中工作?
我有一台主要运行Ruby 1.8.7的服务器,但现在我有一个需要1.9.3的Rails 3.2应用程序.我已经安装了Passenger 4,因为它支持基于每个虚拟服务器运行多个Rubies的能力.
但是,看起来虽然您可以分配特定的Ruby,但应用程序无法访问该Ruby的gemset.所以我的虚拟服务器配置了1.9.3 Ruby,正如我的应用程序现在给出的错误页面所确认的那样:
Ruby interpreter command
/home/aaron/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
Run Code Online (Sandbox Code Playgroud)
但是GEM_HOME参数讲述了一个不同的故事:
GEM_HOME = /home/aaron/.rvm/gems/ruby-1.8.7-p352
Run Code Online (Sandbox Code Playgroud)
查看Passenger 4的配置指令,我看不到指定不同gemset的方法.我错过了什么,或者这个东西还没准备好迎接黄金时段?
我有一个绑定到核心数据实体的NSArrayController - Channel.我有一个方法,在用户更改频道标题后更新实体:
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
NSString * savedTitle = [fieldEditor string];
self.mainWindowController.selectedChannel.channel_name = savedTitle;
[localContext MR_saveToPersistentStoreAndWait];
Run Code Online (Sandbox Code Playgroud)
(我正在使用MagicalRecord,如果不清楚的话)
从各方面来看,这个保存工作 - 在进行更改时反映该值,如果我使用Core Data Editor立即检查持久性存储,我可以看到更改已保存.
更改视图时出现问题 - 更改在主视图中进行,用户可以切换到详细视图.这行代码交换了主视图,标记出现故障的位置:
[[self.chatsViewController.view animator] removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
执行此行后,新保存的值将消失.对entity属性的请求返回一个空字符串.
但这是奇怪的部分.如果我重新启动应用程序,新值仍然存在!它回来了,这一次它就在这里.另外,看着持久性商店,我从来没有看到价值随时消失.这表明我的阵列控制器正以某种方式获取值.
我已经尝试在保存之后刷新阵列控制器以"锁定它",就像它一样.但这似乎没有效果.
任何人都可以建议我采取哪些步骤来追踪这一点?我无法理解为什么删除视图会导致这种情况发生.
更新 正如我在下面的评论中所提到的,我尝试在我的实体子类中的name属性的setter 上放置一个日志语句,当我更改名称时它产生了一个日志条目,但从未发生过.
我现在做了另一个实验:在视图切换之前和之后查看Core Data记录.
NSArray * channels = [Channel MR_findAll];
NSLog(@"Channel: %@", [[channels objectAtIndex:0] channel_name]);
[[self.chatsViewController.view animator] removeFromSuperview];
NSArray * channels2 = [Channel MR_findAll];
NSLog(@"Channel2: %@", [[channels2 objectAtIndex:0] channel_name]);
Run Code Online (Sandbox Code Playgroud)
结果:
Channel: adfasd
Channel2:
Run Code Online (Sandbox Code Playgroud)
我必须在这里遗漏一些东西.
我有这段代码:
date_counter = Time.mktime(2011,01,01,00,00,00,"+05:00")
@weeks = Array.new
(date_counter..Time.now).step(1.week) do |week|
logger.debug "WEEK: " + week.inspect
@weeks << week
end
Run Code Online (Sandbox Code Playgroud)
从技术上讲,代码有效,输出:
Sat Jan 01 00:00:00 -0500 2011
Sat Jan 08 00:00:00 -0500 2011
Sat Jan 15 00:00:00 -0500 2011
etc.
Run Code Online (Sandbox Code Playgroud)
但执行时间完全是垃圾!每周计算大约需要4秒钟.
我在这段代码中遗漏了一些奇怪的低效率吗?看起来很简单.
我正在使用Rails 3.0.3运行Ruby 1.8.7.
作为我的另一个问题的后续内容,我仍然在提交我的iOS 8应用程序(包括共享扩展和框架目标)时遇到问题.在提交尝试时,我收到上述错误消息.其他与我的问题(如前面提到的问题中指出的)有相同的问题,但以与我的情况无关的方式解决它.
错误消息涉及我的共享扩展目标,该目标链接到我编写的框架,该框架在Extension和应用程序之间共享.我很确定Apple很清楚我可以在Extension目标中使用框架(事实上,它更受欢迎!).那么这个错误可能会有什么其他原因呢?
我正在使用Vapor 3应用程序,该应用程序使用请求路径作为响应方法的参数。例如:
http:// localhost:8080 / monitor / some / test / path
可以由单个端点(monitor在这种情况下为端点)来处理,理想情况下,它将使我能够访问URL的其余部分/some/test/path。
我在Vapor中编写了一条无法使用通配符变量的路由,并且尝试group了文档中所述的机制,但无济于事。我对使用其他Web框架的期望是,可以使用“ / monitor / *”之类的东西来完成这项工作,但是我在文档中找不到任何建议。
任何援助将不胜感激!
ios ×4
objective-c ×2
ruby ×2
apache ×1
avfoundation ×1
cocoa ×1
cocoa-touch ×1
core-data ×1
date-range ×1
dynamic ×1
macos ×1
passenger ×1
quicktime ×1
range ×1
swift ×1
uiview ×1
vapor ×1
video ×1
xcode ×1