小编los*_*sit的帖子

iPhone - 什么时候是一个叫做viewcontroller的dealloc?

我正在使用UINavigationController在视图之间移动.当我在视图中来回移动时,我的应用程序使用的内存不断增加.在所有viewcontrollers的dealloc方法中放置NSLog语句时,我注意到它只被调用了一些viewcontrollers而不是所有被弹出的.

例如,这是推送视图的顺序MainViewController - > viewcontroller1 - > viewcontroller2 - > viewcontroller3

现在在viewcontroller3中,如果我执行popToViewController:mainController,则仅为viewcontroller3调用dealloc.它不是为viewcontroller1和2调用的.

有人可以告诉我为什么会这样.

发现了问题.如果viewcontroller保存的任何引用仍在内存中,则不会调用dealloc方法.在我的例子中,它是未在viewcontroller1和viewcontroller2中发布的MPMoviePlayerController对象.

iphone

24
推荐指数
1
解决办法
2万
查看次数

iPhone - 将当前视图保存为图像

如何将当前视图作为图像保存到我的应用程序的相机胶卷?可能吗?

谢谢.

iphone

24
推荐指数
1
解决办法
9300
查看次数

Android - 在运行时更改自定义标题视图

我在我的应用程序中为每个活动使用自定义标题视图.在其中一个活动中,基于按钮点击,我需要更改自定义标题视图.现在,每当我调用setFeatureInt时,这都可以正常工作.

但是,如果我尝试更新自定义标题中的任何项目(例如更改按钮的文本或标题上的文本视图),则不会进行更新.

通过代码调试显示文本视图和按钮实例不为空,我还可以看到自定义标题栏.但文本视图或按钮上的文本未更新.还有其他人遇到过这个问题吗?我该如何解决?

谢谢.

编辑

这是我尝试过的.即使在调用postInvalidate时也不会更新.

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.text_title);

    TextView databar = (TextView) findViewById(R.id.title_text);
    databar.setText("Some Text");
    databar.postInvalidate();

    Button leftButton = (Button) findViewById(R.id.left_btn);
    leftButton.setOnClickListener(mLeftListener);
    leftButton.setText("Left Btn");
    leftButton.postInvalidate();

    Button rightBtn = (Button) findViewById(R.id.right_btn);
    rightBtn.setOnClickListener(mRightListener);
    rightBtn.postInvalidate();
Run Code Online (Sandbox Code Playgroud)

android android-custom-view

23
推荐指数
2
解决办法
4万
查看次数

存储和检索NSString中的无符号long long值

我有一个unsigned long long值,我想存储到NSString并从字符串中检索.

最初我在NSNumber中有值,我使用它来获取字符串

NSString *numStr = [NSString stringWithFormat:@"%llu", [myNum unsignedLongLongValue]];
Run Code Online (Sandbox Code Playgroud)

其中myNum是NSNumber.

要从NSString返回NSNumber,我必须首先获得unsigned long long值.但是NSString类中没有方法可以做到这一点(我们只有一个用于获取long long值,而不是unsigned long long值).

有人可以告诉我如何将值恢复到NSNumber变量中.

谢谢.

objective-c nsnumber nsstring

23
推荐指数
1
解决办法
3万
查看次数

Android - dismissDialog不会忽略该对话框

我正在使用showDialog()dismissDialog()在我的应用程序中显示进度对话框.从创建对话框并调用show()它到使用它以便在更改方向时保存状态.

但是当我从纵向 - >横向 - >纵向更改方向时,dismissDialog()不再取消对话框.对话框一直停留在那里,我需要按后退按钮才能消失.

有什么理由说它会这样吗?

编辑

为了解决这个问题,我尝试添加一个removeDialog()in,onDestroy()这样就不会创建/显示对话框两次,在更改方向之前,会删除该对话框.尝试添加日志语句,看看会发生什么

05-21 12:35:14.064: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:14.064: DEBUG/MyClass(193): *************onCreareDialog

05-21 12:35:15.385: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:15.415: DEBUG/MyClass(193): *************onDestroy

05-21 12:35:15.585: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:15.585: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:15.715: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:17.214: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:17.214: DEBUG/MyClass(193): *************onDestroy

05-21 12:35:17.275: ERROR/WindowManager(193): android.view.WindowLeaked: Activity com.android.MyClass has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43362088 that was originally added here

05-21 12:35:17.395: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:17.395: DEBUG/MyClass(193): *************onCreareDialog …
Run Code Online (Sandbox Code Playgroud)

android

22
推荐指数
4
解决办法
3万
查看次数

Android - 在横向和纵向模式之间切换会使Intent失去价值

我正在使用Intents在我的Android应用程序中切换活动.我将数据放入Intent以用于下一个活动.当我在横向和纵向模式之间切换手机时,从意图传递的值将丢失,我得到NullPointerException.

有人可以告诉我可能有什么问题.

有很多代码可以完全发布.但如果有人需要查看代码的特定部分,我可以在此处发布.

编辑
我解决了状态未被保存的问题.但我遇到的另一个问题是,在方向改变后屏幕上没有任何按钮工作.按下按钮,我在LogCat中收到此警告

02-25 23:07:49.190: WARN/WindowManager(58): No window to dispatch pointer action 0
Run Code Online (Sandbox Code Playgroud)

请帮忙.

android landscape-portrait android-orientation

20
推荐指数
3
解决办法
6万
查看次数

创建.DMG

我想为我的Mac项目创建一个dmg文件.有人可以告诉我该怎么做?这是我的第一个Mac项目,我不知道如何继续.我还希望为用户提供在启动时运行应用程序的选项.我该怎么做呢?

谢谢.

PS我还想添加自定义许可协议.

macos dmg

19
推荐指数
2
解决办法
2万
查看次数

Android - 在没有对话框的情况下显示不确定的进度条

我想在按钮点击时进行处理时,在屏幕中央显示我的进度条.但我只想要没有对话框的进度条..

有什么方法可以做到这一点吗?

android

19
推荐指数
2
解决办法
6万
查看次数

如何确定服务器是否支持Range标头?

我一直试图通过使用Range标头值从特定点流式传输音频,但我总是从一开始就得到这首歌.我通过程序执行此操作,因此不确定问题是在我的代码中还是在服务器上.

如何确定服务器是否支持Range标头参数?

谢谢.

http http-headers

19
推荐指数
4
解决办法
2万
查看次数

UIPickerView - 第一行选择不会调用didSelectRow

UIPickerView和我UIView在一起UITextField.我让用户从选择器中选择一个值或在文本字段中输入自定义值.

当用户从选择器中选择任何选项时,变量值将在(pickerView:didSelectRow:inComponent:方法中)改变.但是如果用户没有在选择器上选择任何值(因为他们想要选择已经选择的第一个选项),则不会调用此方法,并且选择不会反映在变量中.

我尝试将变量的默认值设置为选择器中的第一个选项.但在这种情况下,当用户编辑文本字段时,变量将具有文本字段的文本.现在,如果用户决定再次选择第一个值,则新值不会反映在变量中.

我怎么能克服这个?谢谢.

这是相关的代码

在我的viewDidLoad我有这个语句selectText默认情况下设置选择器的第一个选项

[self setSelectText:[myArray objectAtIndex:0]];
Run Code Online (Sandbox Code Playgroud)

textFieldShouldReturn

- (BOOL)textFieldShouldReturn:(UITextField *)txtField{
    [txtField resignFirstResponder];
    [self setSelectText:txtField.text];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

PickerViewDelegate的didSelectRow

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    // report the selection to the UI label
    [self setSelectText:[myArray objectAtIndex:[pickerView selectedRowInComponent:0]]];
}
Run Code Online (Sandbox Code Playgroud)

当用户编辑文本然后决定他想要使用选择器的第一个值时,就会出现问题.在这种情况下,他们将关闭键盘并单击选择器的第一个选项(已选中).此操作不会调用didSelectRow,因此selectText的值不会更改.

为了使用户能够更改其值selectText,他们首先必须从选择器中选择一些其他值,然后选择第一行.

iphone uipickerview uitextfield

19
推荐指数
2
解决办法
3万
查看次数