在Objective-C中,我将使用以下代码来识别类的实例以及在控制台中调用的函数。
NSLog(@"[DMLOG - %@] %@", NSStringFromSelector(_cmd), self);
这会返回类似下面的控制台,我将获得一个实例ID来跟踪对象的不同实例。
[DMLOG - prepForInput] <GridBase: 0x7fb71860a190>
如何同时获取实例ID和Swift中调用的函数?我已尝试以下方法在Swift中获取ID但它只提供类名而没有实例ID值?任何建议将不胜感激。
print("[DBG] Init: \(self)")
答案 0 :(得分:4)
要获取当前函数名称,请使用NSObject
文字。
对于实例ID,看起来您有两个选择:
从class MyClass: NSObject {
override init() {
super.init()
print("[DBG: \(#function)]: \(self)")
}
}
继承(UIKit类无论如何继承它),以便类实例具有实例ID:
NSObject
如果您的班级没有从class Jumbo {
init() {
print("[DBG: \(#function)]: \(Unmanaged.passUnretained(self).toOpaque())")
}
}
继承,您仍然可以通过内存地址识别您的实例:
public ActionResult LoginConfirmed(int id)
{
UserHomeVM Model = new UserHomeVM();
data = new TempDB();
InitializeTestData a = new InitializeTestData();
data = a.PrepareData(data);
Model.Blogs = new List<Blogs>();
Model.Users = new List<Users>();
Model.Users = data.Users
.Where(b => b.Id != id)
.ToList();
foreach (Blogs b in data.Blogs)
{
if (b.UserID != id)
{
Model.Blogs.Add(b);
}
}
return View("Home", Model);
}
答案 1 :(得分:0)
我刚刚使用以下方法进行了快速测试:
print("\(self) \(#function) - Count \(count)")
我得到了以下结果:
<XXXXXXX.FeedViewController: 0x7fcebdf05d40> viewWillAppear - Count 3
我会尝试一下,看看它是否有帮助。