我遇到了这样的问题.我需要更新NSArray中的值.并且不知道如何做到这一点.这是我的阵列
NSArray *arrayWithInfo = [[NSArray alloc] initWithObjects:AMLocalizedString(@"Status", nil),AMLocalizedString(@"Call", nil),AMLocalizedString(@"Location", nil),AMLocalizedString(@"Control", nil),AMLocalizedString(@"Sim", nil),AMLocalizedString(@"Object", nil),AMLocalizedString(@"Info", nil),nil];
self.dataArray = arrayWithInfo;
[arrayWithInfo release];
Run Code Online (Sandbox Code Playgroud)
更具体地说,我使用此数组初始化了tableview.用户有可能使用不同的本地化字符串,因此我必须更新它.通过使用[tableview reloadData];我得到的表来更新,但NSArray中的值保持不变,它们首先被初始化.
那么如何让数组再次查看字符串并获得新值?
我的应用被拒绝了,因为它在iPad上崩溃了.说实话,它应该崩溃,因为它没有我的应用程序使用的SIM卡(用于发送消息).我已经制作了设备:iphone,并在我的构建中部署目标iphone.然而出于某种原因苹果公司的人仍试图在iPad上运行它.我怎么能只为iPhone制作我的应用程序?没有理由捕获异常并尝试在iPad或iPod touch上运行它,因为大多数应用程序功能都包含发送短信..我该怎么办?以及如何确保应用仅在iPhone上,而不是在iPad或iPod touch上
我开始使用UIView动画.并且无法使这些代码正常工作.这就是我所拥有的
if(_Language.hidden == true)
{
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^ {
_Language.alpha = 1.0;
}
completion:^(BOOL finished) {
_Language.hidden = false;
}];
}
else
{
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^ {
_Language.alpha = 0.0;
}
completion:^(BOOL finished) {
_Language.hidden = true;
}];
}
Run Code Online (Sandbox Code Playgroud)
此代码以这种方式工作.隐藏动画按预期工作.但是显示动画只等待1秒,然后弹出对象而没有任何过渡.谁能告诉我这里缺少什么?
我试图从NSData获取NSMutableArray 16个字节,但没有这样做.也许任何人都可以指出我正确的方向.
示例:输入: <c4ebc39d edf81fe6 09e0a41a 34b4d20d c4ebc39d edf81fe6 09e0a41a 34b4d20d>
输出: <c4ebc39d edf81fe6 09e0a41a 34b4d20d> <c4ebc39d edf81fe6 09e0a41a 34b4d20d>
我这样想:
NSMutableArray *blocks = [[NSMutableArray alloc]init];
for (NSUInteger i = 0; i <= [data length]; i=i+16) {
unsigned char *byte = NULL;
[data getBytes:byte range:NSMakeRange(i, 16)];
NSData *temp = [[NSData alloc] initWithBytes:byte length:sizeof(byte)];
[blocks addObject:temp];
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,这会抛出我的exc_bad_access.
我想将List<String[]>意图传递给活动,然后检索它。有人知道如何正确执行此操作吗?谢谢
我可以选择Bitmap在我的应用程序中保存到SD卡.
我正在节省AsyncTask方法.这是我在背景上所做的
public File saveImageToExternalStorage(Bitmap image, String name) {
String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + APP_PATH_SD_CARD + APP_THUMBNAIL_PATH_SD_CARD;
try {
File dir = new File(fullPath);
if (!dir.exists()) {
dir.mkdirs();
}
OutputStream fOut = null;
File file = new File(fullPath, name.replaceAll("/", "").trim());
file.createNewFile();
fOut = new FileOutputStream(file);
image.compress(Bitmap.CompressFormat.JPEG, 50, fOut);
fOut.flush();
fOut.close();
MediaStore.Images.Media.insertImage(getApplicationContext().getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName());
return file;
} catch (Exception e) {
return null;
}
Run Code Online (Sandbox Code Playgroud)
如果我从这个方法中获取null,我正在显示有关用户无法保存等信息.虽然这应该足够了,但是我报告OutOfMemory了一个用户从这个方法崩溃了.堆栈跟踪:
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299) …Run Code Online (Sandbox Code Playgroud)