嗨,我已经按照教程在iOS上使用GCM.它一直在间歇性地工作(这意味着所有的证书,权限和东西都没问题).但是最近,我一直在反复收到两条错误消息:
GCM | GCM registration is not ready with auth credentials.
此外,重新连接到GCM失败:
Error Domain=com.google.gcm Code=501 "(null)"
这部分地与未获得GCM注册ID的设备相关.有没有其他人最近更频繁地遇到这些问题?还是因为我打电话的GCM API不正确的序列(特别是connectWithHandler:,startWithConfig:和tokenWithAuthorizedEntity方法)?我怀疑的原因是因为我后面做得到一些延迟后,GCM ID.
我也不总是收到GCM ID.当我没有收到一个,我通常需要通过Xcode运行应用程序一次或两次.(或通过强制关闭应用程序).显然,这不是我的用户应该做的事情.
这是我的GCM API调用的序列:
tokenWithAuthorizedEntity:我使用我的APNS令牌进行呼叫
tokenWithAuthorizedEntity再次调用强制重新获取GCM令牌.另外,我也在connectWithHandler:我的applicationDidBecomeActive:方法中写了调用.
几个问题:
connectWithHandler:的applicationDidBecomeActive:必要的,如果我只接收GCM推送消息感兴趣,不是上游给他们?tokenWithAuthorizedEntity?)startWithConfig什么时候打电话?在获得GCM令牌之前或之后?编辑:有限测试显示以下似乎工作:
getIDWithHandler:)tokenWithAuthorizedEntity:)无法在缓存中找到令牌错误域= com.google.iid代码= -25300"(null)"
我有如下布局(使用AutoLayout,iPad):

将UIScrollView有上,下,前置,后置空间到上海华盈为0.UIView也有四个类似的限制.第二个UILabel以编程方式将其高度设置为0(因为此处显示的屏幕不仅仅是屏幕).此外,这些四个引脚约束也已设置UIView为UIScrollView.
加载XIB时,会UILabel正确显示长行文本.但滚动不起作用.这是iPad上正在运行的应用程序的屏幕截图:

黄色背景设置为最外侧视图,灰色背景设置为最外侧视图UIView.如果你仔细看到屏幕截图的末尾,那么UILabel文字似乎溢出了UIView.
我怀疑因为UIView无法"捕获"它的子视图的大小,所以UIScrollView也无法计算它的内容大小(如果滚动条的内容视图仅等于一个屏幕,则没有理由使其工作).即使这UILabel显然是一个子视图,为什么会发生这种情况UIView呢?如果我的怀疑是正确的,我如何设置UIView的高度等于实际的内容大小,以便我UILabel的正确"包含"在其中?
(UIView静态设置高度,宽度不是一个选项).
注意:在没有UIView和只有一个UILabel(带有长文本)的情况下测试XIB UIScrollView.现在滚动工作(因为,我认为,滚动视图可以计算其内容大小).
我正在学习Android,我创建了一个包含两个按钮的活动:ToggleButton(播放/暂停)和按钮(下一个).按下Next,我有两首想要循环播放的歌曲.我有一个阵列
int [] songs={R.raw.song1,R.raw.song2};
我在我的Activity中覆盖了onClick.第一首歌很好; 但按下Next后,我收到以下错误:
无法在客户端打开文件,尝试服务器端
E/MediaPlayer(3107):在状态4中调用
E/MediaPlayer(3107):错误(-38,0)
E/MediaPlayer(3107):错误(-38,0)
E/MediaPlayer(3107):错误(1,-2147483648)
E/MediaPlayer(3107):错误(1,-2147483648)
在onCreate(Bundle ...)中,
if(mp!=null) mp.release();
mp=MediaPlayer.create(this, songs[count]);
Run Code Online (Sandbox Code Playgroud)
这是我的onClick(View v)方法:
public void onClick(View view) {
Log.v(TAG,"ID:"+view.getId());
switch (view.getId()) {
case R.id.playerbutton: //ToggleButton
if(state==0) {
mp.start();
state=1;
}
else if(state==1) {
state=0;
mp.pause();
}
break;
case R.id.next: //Next button
Log.v(TAG,"Next button pressed!");
count=(count+1)%2; //Have only two songs
mp.reset();
try {
mp.setDataSource(this, Uri.parse("android.resource://com.example.myfirstapp"+songs[count]));
mp.setOnPreparedListener(this);
mp.prepareAsync();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) { …Run Code Online (Sandbox Code Playgroud) 我有一个UITableView(有自定义单元格,如果重要的话)连接到一个NSFetchedResultsController.我的应用程序也使用推送通知.当远程通知到达时,我分两个阶段更新我的(核心)数据模型:
1)获取标题(带有一些自定义数据)并将其存储为新的核心数据Entity.我在这里打电话NSManagedObjectContext save().NSFetchedResultsController拿起插入并didChangeObject用NSFetchedResultsChangeType=来激活它的委托方法NSFetchedResultsChangeInsert.tableview即时更新.(插入一个新行)
2)通过NSURLSession将其插入上面Entity并再次调用,下载与该单元相关的更多内容save() method.NSFetchedResultsController再次获取更新并didChangeObject使用NSFetchedResultsChangeType= 触发它的委托方法NSFetchedResultsChangeUpdate.这是我称之为configureCell方法的地方.tableView已更新,但具有大约10秒的一致延迟.
在这两个阶段(下载环境保存更新的tableview)需要被显示的数据也已经由核心数据持久化.(例如,在我的configureCell..方法中,我知道我没有设置任何细胞标签nil或类似的.
我的NSFetchedResultsController委托方法:
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller {
[self.mainTableView beginUpdates];
}
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
[self.mainTableView endUpdates];
}
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath {
UITableView *tableView = self.mainTableView;
switch(type) {
case NSFetchedResultsChangeInsert: …Run Code Online (Sandbox Code Playgroud) core-data objective-c uitableview nsfetchedresultscontroller ios
我有UITableView自动行高和自定义UITableViewCell.在内部UITableViewCell,我首先添加一些UIButton具有程序性Autolayout约束的s.它们完全按照我的要求定位.然后,在3秒(NSTimer)之后,我删除所有UIButtons并再次添加不同数量的s.(例如,最初我有4个UIButtons,3秒后,我删除那些4 UIButton秒并添加3个不同的.
最初:
后旋转:
为什么会这样?我没有看到任何Autolayout警告.此外,在方向更改后,一切都正确定位.什么是需要改变方向?我怎样才能手动强制执行此操作?(仅为此重新加载tableview似乎太多了)
PS:我尝试使用setNeedsUpdateConstraints,layoutIfNeeded,layoutSubviews但无济于事.
这是UITableViewCell代码:http://pastebin.com/TcHUXgDU.(添加了一个不污染这个空间的pastebin)但基本上,configure:我在tableview子类中有一个方法,我在cellForRowAtIndexPath其包含的内容中调用它UITableView.此方法添加了这些约束.此外,在计时器触发后,调用相同的代码(在另一个函数中),除了我添加的项目数与初始项目数不同.
这是我的UITableViewCell布局:(只有顶部,底部,前导,尾随约束已被添加到UIView"Outerview")
ios ×4
autolayout ×2
objective-c ×2
uitableview ×2
android ×1
cocoa-touch ×1
core-data ×1
iphone ×1
uiscrollview ×1
uiview ×1