我有一些代碼來設置一個NSMutableAttributedString:間歇性崩潰
NSMutableParagraphStyle *centred = [[NSMutableParagraphStyle alloc]init];
[centred setAlignment:NSCenterTextAlignment];
NSDictionary *attributes = [[NSDictionary alloc]initWithObjectsAndKeys:[NSFont fontWithName:@"Helvetica bold" size:12],NSFontAttributeName,
[NSColor whiteColor],NSForegroundColorAttributeName,
[NSColor clearColor], NSBackgroundColorAttributeName,
centred, NSParagraphStyleAttributeName,
nil];
NSMutableAttributedString* attribTitle = [[NSMutableAttributedString alloc]initWithString:@"Foo"];
[attribTitle setAttributes:attributes range:NSMakeRange(0, [[attribTitle string] length] - 1)];
它已經坐在我的應用程序的-awakeFromNib方法幾乎從我開始,沒有任何問題,但就在今天的項目,我已經開始讓所有其他嘗試在Xcode 4.3中運行應用程序崩潰與「線程1:EXC_BAD_ACCESS(代碼= 1,地址= 0x10)」。它打破了最終的'... setAttributes ...'一行。有一次,我嘗試使用方法--initWithString:attributes:來初始化attribTitle,並確定崩潰(當它的時候)在alloc-init行上。
我已經嘗試清除Xcode重新啓動,但它仍然發生在每個其他構建...如果應用程序不崩潰然後attrbibuted字符串出現預期。
我想知道如果我有一個損壞的項目文件,但萬一我做了一些傻事,任何人都可以指出一個錯誤 - 大概是'屬性'NSDictionary?
謝謝!
託德。
如果你像這樣初始化段落風格會發生什麼:'NSMutableParagraphStyle *居中= [[NSParagraphStyle defaultParagraphStyle] mutableCopy];'? – Wienke
另一個問題可能是您命名字體的方式。試着打破這個代碼並測試你的字體是否爲零。 – Wienke
對於它的價值,我在一個工作項目中嘗試了你的代碼,到目前爲止在OS X SDK 10.7上沒有崩潰。按照Wienke的建議,我嘗試記錄字體,結果如下:'「Helvetica-Bold 12.00 pt。P [](0x7ff6734f3f40)fobj = 0x7ff6736d0190,spc = 3.33」' - 那裏也沒有問題。 – modocache