我有一个存储到的对象队列NSUserDefaults.当我需要向其添加对象时,我调用以下方法:
+ (void)addCodeToQueue:(Code *)code {
// Note: userDefaults is a static, initialized variable
NSDictionary *codeModel = [self generateCodeModelWith:code];
// Read array from UserDefaults, or create one if nil
NSMutableArray *codeQueue = [userDefaults mutableArrayValueForKey:@"CodeQueue"] ? : [[NSMutableArray alloc] init];
// Add code model
[codeQueue addObject:codeModel];
// Add/replace array & sync
[userDefaults setObject:codeQueue forKey:@"CodeQueue"]; // App freezes here if uncommented
[userDefaults synchronize];
}
Run Code Online (Sandbox Code Playgroud)
我打电话时我的应用程序冻结了setObject:forKey.如果我在该行添加一个断点,继续运行,它就可以了.如果我不打破,它会冻结.
在我将Xcode更新到版本8并开始使用新SDK之后,这种情况就开始发生了.有什么暗示吗?
我正在尝试将最受欢迎的导航应用程序集成到我的应用程序中,除了Sygic之外,我选择的所有工作都是如此.
按照本指南,我编写了代码:
NSString *URL = [NSString stringWithFormat:@"com.sygic.aura://coordinate|%f|%f|drive",
self.coordinate.longitude,
self.coordinate.latitude];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:URL]];
Run Code Online (Sandbox Code Playgroud)
但是当代码运行时,Sygic没有打开,没有任何反应.
在安装应用程序时以及不应用程序时检查[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"com.sygic.aura://"]]返回(应该如此).YESNO
我使用"Sygic Brasil"和"Sygic(All Regions)"进行了测试,版本13,但都没有打开.我也尝试过百分比转义URL字符串,但这也无效.
想象一下,该应用程序有两个活动,A和B.从A,你按下一个开始的按钮B.从B,你按下另一个按钮运行setResult(RESULT_CANCEL, new Intent()); finish();
这样,视图弹回到A.
我在两个设备上测试它,一个运行Gingerbread(GB),另一个运行Jellybean(JB).
在GB上,当我将表单B返回给A时,该方法onCreate未被调用,我认为这意味着该活动尚未被释放(onDestroy也未被调用).
然而在JB,该方法onCreate 被再次调用,我不明白为什么.
最大的问题是,在我的应用程序中,onCreate它用于从Internet加载数据.这样,JB将始终重新加载该数据,即使已经下载了这些数据.
到底发生了什么,他们为什么表现不同?
我有一个NetworkImageView从URL加载其内容,但在特定情况下,我还希望能够从用户的图库加载图像(甚至用相机捕获一个).
我正在使用Image Chooser Library从图库中加载图像,选择后,它允许我获取图像的文件路径.这条路就像/mnt/sdcard/bimagechooser/IMG_20140811_155007906.jpg
如果我尝试直接从此路径加载图像,Volley将引发异常,说明:
NetworkDispatcher.run:未处理的异常java.lang.RuntimeException:错误的URL
/mnt/sdcard/bimagechooser/IMG_20140811_155007906.jpg
我也试过设置drawable:
Drawable newImage = Drawable.createFromPath(imagePath);
mNetworkImageView.setImageDrawable(newImage);
Run Code Online (Sandbox Code Playgroud)
当这些线条运行时没有任何反应,视图保持空白/不变.
NetworkImageView没有URL 设置内容的正确方法是什么?
我正在尝试获取信用卡号码字符串并用星号掩盖中间数字.我使用正则表达式/^([\d]{6})([\d]{3,6})([\d]{4})$/匹配三组:
正如您在下面的控制台中看到的那样,首先gsub是匹配组nil,直到我在替换属性中使用文字字符串.然后,当我尝试运行初始调用时,它可以工作.
2.0.0-p598 :001 > c = "5454545454545454"
=> "5454545454545454"
2.0.0-p598 :002 > c.gsub(/^([\d]{6})([\d]{3,6})([\d]{4})$/, $1 + '*' * $2.size + $3)
NoMethodError: undefined method `size' for nil:NilClass
from (irb):2
from /Users/guilherme/.rvm/rubies/ruby-2.0.0-p598/bin/irb:12:in `<main>'
2.0.0-p598 :003 > c.gsub(/^([\d]{6})([\d]{3,6})([\d]{4})$/, "anything")
=> "anything"
2.0.0-p598 :004 > c.gsub(/^([\d]{6})([\d]{3,6})([\d]{4})$/, $1 + '*' * $2.size + $3)
=> "545454******5454"
Run Code Online (Sandbox Code Playgroud)
为什么会这样?这是一个错误吗?如何解决这个问题并使其在第一次尝试中起作用?