我创建了一个Class(NSObject的子类),它将保存我所有的SQL / dbConnections等。
在一个单独的viewcontroller中,我已经实例化了SQL的类并执行了一些操作,所有操作都通过OK。
但是。 我的SQL类中的一个方法是一个定义如下的方法:
-(NSString *)queryTable:(NSUInteger *)fieldnum
//query from db, and assign the field value into "fieldName"
dbEntity = fieldName;
[fieldName release];
}
sqlite3_finalize(statement);
}
return dbEntity;
}
dbEntity定义为NSString,我将其设置为nonatoimc-retain属性
@property (nonatomic,retain) NSString *dbEntity;
当我从viewController调用此方法并逐步调试时, 我看到该方法正在运行,它正在按预期从数据库查询, 但是当它将值传递给dbEntity时,dbEntity中的值突然“超出范围” 那就是......如果我浏览这个特定的动作:
dbEntity = fieldName;
我可以在fieldName中看到值,但在dbEntity中看到“超出范围”。
为什么???
dbEntity定义有什么问题?
任何帮助都会得到满足。
答案 0 :(得分:1)
除非您这样做,否则不会保留:
self.dbEntity = fieldName;