错误集_ nib文件加载,Unknown class <XXClass> in Interface Builder file.,Undefined symbolsfor architecture

1.   nib文件加载... 1

2.   Unknownclass  <XXClass>  in Interface Builder file.1

3.   Undefinedsymbols for architecture i386:1

4.   对象的isa属性为0x01

 

1.       nib文件加载

类似initWithNibName这样的方法, nib文件不能带有扩展名

2.       Unknown class <XXClass>  in InterfaceBuilder file.

现象:

link报错, Unknown class  <XXClass>  in Interface Builder file., 而XXClass确实存在而且没有任何问题

原因:

参见:

http://stackoverflow.com/questions/1725881/unknown-class-myclass-in-interface-builder-file-error-at-runtime

       因为XXClass只在nib文件中被引用, 其它地方没有被引用到, 因此被link优化掉, 运行时nib文件试图加载XXClass时, 产生运行时错误

解决方案:

A.      link flag中指定 -all_load –ObjC
B.       在某处引用XXClass一次, 例如 [XXClassclass]
C.       在project中删除XXClass的文件, 并重新add进去

3.       Undefined symbols for architecture i386:

现象:

link报错,

Undefined symbols for architecture i386:

 "_AudioServicesCreateSystemSoundID", refereced from:

原因:

       没有将对应的framework加入工程

解决方案:

       在工程选项的 Linked Frameworks and Libraries中, 加入AudioToolbox.framework

4.       对象的isa属性为0x0

       对象id不为nil,但对象的isa属性为0x0,说明对象已经释放,注意检查对象计数。

       比如,将self.obj=arg 写为 obj=arg,局部变量arg释放后,obj就不存在了(因为单纯的赋值没有对arg进行retain或者copy),指针无效。

       将property和变量实际名字分别命名可以避免这类错误,例如将obj的变量命名为_obj,而属性名为obj,那么如果写出obj=arg,可以很容易的发觉。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码import os import numpy as np import nibabel as nib from PIL import Image # 创建保存路径 save_path = 'C:/Users/Administrator/Desktop/2D-LiTS2017' if not os.path.exists(save_path): os.makedirs(save_path) if not os.path.exists(os.path.join(save_path, 'image')): os.makedirs(os.path.join(save_path, 'image')) if not os.path.exists(os.path.join(save_path, 'label')): os.makedirs(os.path.join(save_path, 'label')) # 加载数据 data_path = 'D:/BaiduNetdiskDownload/LiTS2017' img_path = os.path.join(data_path, 'Training Batch 1') label_path = os.path.join(data_path, 'Training Batch 2') # 转换图像 for file in sorted(os.listdir(img_path)): if file.endswith('.nii'): img_file = os.path.join(img_path, file) img = nib.load(img_file).get_fdata() img = np.transpose(img, (2, 0, 1)) # 转换为z, x, y for i in range(img.shape[0]): img_slice = img[i, :, :] img_slice = (img_slice - np.min(img_slice)) / (np.max(img_slice) - np.min(img_slice)) * 255 # 归一化到0-255 img_slice = img_slice.astype(np.uint8) img_slice = np.stack([img_slice]*3, axis=2) # 转换为三通道图像 img_name = file[:-4] + '' + str(i).zfill(3) + '.png' img_file_save = os.path.join(save_path, 'image', img_name) Image.fromarray(img_slice).save(img_file_save) # 转换标签 for file in sorted(os.listdir(label_path)): if file.endswith('.nii'): label_file = os.path.join(label_path, file) label = nib.load(label_file).get_fdata() label = np.transpose(label, (2, 0, 1)) # 转换为z, x, y for i in range(label.shape[0]): label_slice = label[i, :, :] label_slice[label_slice == 1] = 255 # 肝脏灰度值设为255 label_slice[label_slice == 2] = 128 # 肝脏肿瘤灰度值设为128 label_slice = label_slice.astype(np.uint8) label_name = file[:-4] + '' + str(i).zfill(3) + '.png' label_file_save = os.path.join(save_path, 'label', label_name) Image.fromarray(label_slice).save(label_file_save)出现scaled = scaled.astype(np.promote_types(scaled.dtype, dtype), copy=False) MemoryError错误,怎么修改?给出完整代码
最新发布
05-24

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值