我有一个自定义UIView
调用ActivityDetailView
我实例化,然后添加到父视图控制器内的滚动视图.分配此自定义视图时,每次额外内存大约需要1mb,而且仪器显示内存永远不会被释放,即使视图和父视图控制器都dealloc
调用了它们的方法.我得到了内存警告,应用程序最终被杀死所以我显然做错了什么.
更新了有关地图视图的信息,但我需要修复
在自定义ActivityDetailView
nib文件中,有一个缩放的地图视图,并以用户的位置为中心.当我从笔尖中删除此地图视图以使其不在屏幕上绘制时,内存分配问题就消失了.但是,我显然需要地图视图.当地图视图超出范围时,为什么地图视图的数据不会被释放?
视图显示时只有1 ActivityDetailView
和1 ActivityDetailViewController
活着.一旦我将视图从堆栈中弹出,它们就不再生存了.即使通过仪器显示对象被杀死,内存如何保持增长也没有意义.如果取消分配父视图,为什么地图视图数据不会被释放?
我做错了什么或应该检查什么?
这是自定义视图:
@interface ActivityDetailView ()
{
CLLocation *location;
__weak id parentViewController;
int scrollViewX;
ImageUtility *imageUtility;
}
@end
@implementation ActivityDetailView
-(id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
NSArray *xibViews = [[NSBundle mainBundle] loadNibNamed:@"ActivityDetailView" owner:nil options:nil];
if ([xibViews count] < 1) return nil;
ActivityDetailView * xibView = [xibViews objectAtIndex:0];
[xibView setFrame:frame];
self = xibView;
}
return self;
}
- (id)initWithLocation:(CLLocation *)loc parentController:(id)parent
{
self …
Run Code Online (Sandbox Code Playgroud) 比方说,例如,我有MyUITextViewSubclass
从继承UITextView
并MyUITextFieldSubclass
从中继承UITextField
和这两个子类中含有大量的相同的方法和属性类似的行为添加到这些UI控件.
由于UITextView
与UITextField
从不同的类继承,有一个简单的方法来创建一个抽象类,所有这些重复的代码相结合? 换句话说,是否有可能创建一个我可以从这两个子类继承的抽象类,然后只是覆盖两者之间不同的方法?
到目前为止我所知道的:
我已经使用各种排序方法查看了几个答案NSMutableArray
,但由于某种原因它们不适合我.
我只是试图通过Delay
每个字典中的键对包含字典的可变数组进行排序.但是,"sorted"数组与原始数组完全相同.
顺便说一句,如果我创建一个虚拟可变数组并用包含数字的字典填充它,它可以正常工作,但由于某种原因它不会对我正在初始化的这个可变数组进行排序.
我究竟做错了什么?
这是我的代码:
playlistCalls = [[NSMutableArray alloc] initWithArray:[currentPlaylist objectForKey:@"Tunes"]];
NSLog(@"original %@", playlistCalls);
NSSortDescriptor *delay = [NSSortDescriptor sortDescriptorWithKey:@"Delay" ascending:YES];
[playlistCalls sortUsingDescriptors:[NSArray arrayWithObject:delay]];
NSLog(@"sorted %@", playlistCalls);
Run Code Online (Sandbox Code Playgroud)
这是包含字典的数组:
2012-06-04 15:48:09.129 MyApp[57043:f503] original (
{
Name = Test Tune;
Delay = 120;
Volume = 100;
},
{
Name = Testes;
Delay = 180;
Volume = 100;
},
{
Name = Testing;
Delay = 60;
Volume = 100;
}
)
2012-06-04 15:48:09.129 MyApp[57043:f503] sorted (
{
Name = Test …
Run Code Online (Sandbox Code Playgroud) 我正在使用Yuri Kanivets的WheelView控件,我发现它没有填充父视图,即使布局XML指定它这样做.
这是我的意思的图像:
这是布局XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00000000">
<LinearLayout
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:background="@drawable/picker_bar">
<Button
android:id="@+id/repeatButton"
android:textColor="#FFF"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/picker_button_selected"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:layout_marginLeft="7dp"
android:gravity="center"
android:textSize="16sp"
android:text="Repeat"/>
<Button
android:id="@+id/DelayButton"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/picker_button_unselected"
android:paddingTop="8dp"
android:textColor="#FFF"
android:paddingBottom="8dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:layout_marginLeft="10dp"
android:gravity="center"
android:textSize="16sp"
android:text="Delay"/>
<Button
android:id="@+id/doneButton"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/picker_button_unselected"
android:textColor="#FFF"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:gravity="center"
android:textSize="16sp"
android:text="Done"/>
</LinearLayout>
<include layout="@layout/repeat_view"/>
<include layout="@layout/delay_view"/>
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
这是重复/延迟视图XML(它们几乎相同): …
ios ×3
objective-c ×2
android ×1
ios6 ×1
iphone ×1
memory ×1
mkmapview ×1
sorting ×1
uitextfield ×1
uitextview ×1