在单独的类中创建的方法返回“超出范围”

发布于 2024-09-02 04:25:54 字数 845 浏览 3 评论 0原文

我创建了一个类(NSObject 的子类),它将保存我所有的 SQL/dbConnections 等。

在一个单独的视图控制器中,我已经实例化了 SQL 类并执行了一些操作,一切顺利。

但。 我在 SQL 类中的方法之一是定义如下的方法:

-(NSString *)queryTable:(NSUInteger *)fieldnum
        //query from db, and assign the field value into "fieldName"

        dbEntity = fieldName;
        [fieldName release];

       }
       sqlite3_finalize(statement);
   } 
   return dbEntity;
}

我已将其设置为 nonatoimc-retain 属性,

@property (nonatomic,retain) NSString *dbEntity;

dbEntity 被定义为 NSString,当我从 viewController 中调用此方法并逐步调试时, 我看到该方法正在运行,它正在按预期从数据库查询, 但是当它将值传递到 dbEntity 时,dbEntity 中的值突然“超出范围” 也就是说...如果我浏览此特定操作:

dbEntity = fieldName; 

我可以看到 fieldName 中的值,但在 dbEntity 中看到“超出范围”。

这是为什么?!?

dbEntity 定义有什么问题?

任何帮助将不胜感激。

I have created a Class (subclass of NSObject) which will hold all my SQLs/dbConnections etc..

in a seperate viewcontroller, i have instantiated the SQL's class and performed some actions, all went trough OK.

but.
one of my methods in the SQL's class is a method defined as follows:

-(NSString *)queryTable:(NSUInteger *)fieldnum
        //query from db, and assign the field value into "fieldName"

        dbEntity = fieldName;
        [fieldName release];

       }
       sqlite3_finalize(statement);
   } 
   return dbEntity;
}

dbEntity is defined as NSString, and i have set it as a nonatoimc-retain property

@property (nonatomic,retain) NSString *dbEntity;

when ever i call this method out from my viewController and debug step by step,
i see that the method is running, it is quering from the db as expected,
but when it passes the value into dbEntity the values in dbEntity are suddenly "out of scope"
that is... if i browse this specific action:

dbEntity = fieldName; 

i can see values inside fieldName, but see "out of scope" in dbEntity.

Why is that?!?

what is wrong with dbEntity definitions?

Any help will be appriciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最冷一天 2024-09-09 04:25:54

除非您执行以下操作,否则不会保留它:

self.dbEntity = fieldName;

It is not retained unless you do:

self.dbEntity = fieldName;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文