我在一个神秘的问题上停留了一段时间.所以我在我的Android应用程序中实现了GCM,但是我收到了INVALID_SENDER错误.
关于这一点的奇怪之处在于我已经有一个注册ID来发送通知.所以我的控制台看起来像这样:
03-26 09:39:20.233: I/<test>(19761): Already registered: APA91bG6- O3OnZt50EAjYvJ5KETv3qAlPOn2SfOPXez7SLAmaAOkHTN6EMDJb91gFIWkftZkJiub6UoEk4O- WQP7kk2oZGQjZ1VCZZS0WddQtjFaCfYfZfb7SEw3IS1sd4caJcdZE4LA1F0hxzc7Ss1UiYHXX-XXXX
03-26 09:48:23.522: I/<test>(19925): GCMIntentService
03-26 09:39:20.670: I/<test>(19761): on Error INVALID_SENDER
Run Code Online (Sandbox Code Playgroud)
在onCreate里面:
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
Log.i("<test>", "registering");
GCMRegistrar.register(this, "2194354949XX");
} else {
Log.i("<test>", "Already registered: " + regId);
}
Run Code Online (Sandbox Code Playgroud)
广播接收器:
public class GCMBroadcastReceiver extends com.google.android.gcm.GCMBroadcastReceiver{
@Override
protected String getGCMIntentServiceClassName(Context context){
return "be.XXX.XXX.system.GCMIntentService";
}
}
Run Code Online (Sandbox Code Playgroud)
GCMIntentService:
public class GCMIntentService extends GCMBaseIntentService {
@Override
protected void onError(Context arg0, String errorId) {
Log.i("<test>","on Error " …Run Code Online (Sandbox Code Playgroud) 是否有正确的方法来捕获块代码中的异常?
我得到以下代码:
void(^callback(int) = ^(int respond){
[self DoSomethingWithRespond:respond]; //this throws an exception
};
-(void)DoSomethingWithRespond:(int)respond{
if(respond == 400){
NSException *exception = [NSException
exceptionWithName:@"Failed"
reason:logMessage
userInfo:nil];
@throw exception
}
}
Run Code Online (Sandbox Code Playgroud)
回调方法从另一个线程调用.如果响应等于400,则该DoSomethingWithRespond方法将抛出异常.
我是Objective-C的新手,我想知道为什么这个方法编译,任何人都能解释我为什么?
谢谢
-(BOOL) isEnabled{
return 56;
}
Run Code Online (Sandbox Code Playgroud) 有没有办法从新拍摄的图像中获取位置,而不使用CLLocationManager?
如果您可以从图像中提取数据,那么使用位置管理器是多么愚蠢.
提前致谢
objective-c geotagging uiimagepickercontroller cllocationmanager ios