我有一个自定义对象ProductCategory
。
.h文件:
#import <Foundation/Foundation.h>
@interface ProductCategory : NSObject
@property int productCategoryId;
@property NSString *name;
@property NSArray *children;
@property int parentCategoryId;
- (id)initWithId:(int)productCategoryId name:(NSString*)name;
- (id)initWithId:(int)productCategoryId name:(NSString*)name children:(NSArray*)chidren parentCategoryId:(int)parentCategoryId;
@end
.m文件:
#import "ProductCategory.h"
@implementation ProductCategory
- (id)init {
if((self = [super init])) {
self.parentCategoryId = 0;
}
return self;
}
- (id)initWithId:(int)productCategoryId name:(NSString*)name {
if((self = [super init])) {
self.productCategoryId = productCategoryId;
self.name = name;
self.parentCategoryId = 0;
}
return self;
}
- (id)initWithId:(int)productCategoryId name:(NSString*)name children:(NSArray*)chidren parentCategoryId:(int)parentCategoryId {
if((self = [super init])) {
self.productCategoryId = productCategoryId;
self.name = name;
self.children = chidren;
self.parentCategoryId = parentCategoryId;
}
return self;
}
@end
这只是一个普通的物体,我做了100000次。问题是,有时该对象的实例返回"0 objects"
,有时会返回正确的对象。
例如,如果我执行此操作ProductCategory *category = [[ProductCategory alloc]init];
有时会返回ProductCategory
实例,有时会返回"0 objects"
,因此我无法为此对象分配任何值。
我想这应该是非常愚蠢的东西,但我没有看到它。
答案 0 :(得分:4)
解决问题的方法:
重启XCode。
为什么会这样?:
Apple应该回答这个问题。
使用XCode一段时间后内存问题似乎是垃圾。
如果你陷入困境,可以采取行动
@HotLicks关于使用import wx
class MenuCallback(wx.Frame):
def __init__(self, *args, **kwds):
self.frame=wx.Frame.__init__(self, *args, **kwds)
self.menubar = wx.MenuBar()
menu1 = wx.Menu()
menu_item_1 = menu1.Append(wx.ID_OPEN, "&File")
menu_item_2 = menu1.Append(wx.ID_EXIT, "&Exit...")
#Build a list of things via another function or just a declaration
self.list_of_things = ["Thing No 1", "Thing No 2", "Thing No 3"]
list_used = wx.Menu()
thing_count = 101
for thing in self.list_of_things:
t1 = wx.MenuItem(list_used, thing_count, thing)
list_used.AppendItem(t1)
thing_count +=1
thing_end = wx.MenuItem(list_used,199,'End of List')
list_used.AppendItem(thing_end)
menu1.AppendMenu(wx.ID_FILE,'&Things',list_used)
self.menubar.Append(menu1, "&File")
self.SetMenuBar(self.menubar)
# Create bindings for the Thing list
i_count = 101
for i in self.list_of_things:
self.Bind(wx.EVT_MENU, self.OnThingOpen, id=i_count)
i_count = i_count + 1
self.Bind(wx.EVT_MENU, self.OnThingEnd, id=199)
self.Bind(wx.EVT_MENU, self.OnClose, id=wx.ID_EXIT)
self.Show(True)
def OnThingOpen(self, event):
id_index = 101
id_selected = event.GetId()
id_selected = id_selected - id_index
print "Option =", id_selected
print "Thing selected =", str(self.list_of_things[id_selected])
def OnThingEnd(self, event):
id_selected = event.GetId()
print "Option =", id_selected
def OnClose(self, event):
self.Close()
if __name__ == '__main__':
app = wx.App()
MC=MenuCallback(parent=None, id=-1)
app.MainLoop()
和NSLog
的建议是正确的,以确保该对象的状态。
此外,您可以在断点后使用调试器窗口中的po
命令调用方法并读取相关对象的属性。
答案 1 :(得分:0)
zevarito走在正确的轨道上。更多似乎解决了长期恼人的问题:
关闭项目。
Xcode - &gt;窗口 - &gt;项目 对于有问题的项目(以及所有其他项目可能是一个很好的清理房屋的想法),请点击派生数据 - &gt;删除。
关闭Xcode。 关闭模拟器。
重新启动Xcode并恢复正在进行的操作。