2012-01-30 90 views
1

如果我在類聲明中放入一個NSURL,並將它設置爲某個方法中的某個方法,那麼該方法完成時它所指向的對象將消失。有沒有一種方法可以在C++中使用聲明中的對象的非指針版本? XCode似乎不想讓我。指針NSURL數據成員

回答

0

有沒有辦法在聲明中有一個非指針版本的對象,就像你可以在C++中一樣? XCode似乎不想讓我。

NSObject類型不支持這一點。即使創建你自己的root objc類也不支持Clang(如果你足夠令人討厭,你可以用GCC來完成)。因此,簡短的答案是「不,你不能按值來聲明一個NSObject類型」。

但這並不重要;正確的解決方案是弄清楚爲什麼你的成員被清除 - 使用ref計數指針適用於其他人。

+0

你能不能簡單地說明你是如何做到的? – SirYakalot 2012-01-31 11:45:15

+0

imp我有500行左右。下面是綱要:使用GCC,聲明一個根類,想出一個使用'object_setClass'初始化'isa'的初始化方案 - 你不想'alloc' +'init',但有些不同。從objc運行時爲基本接口添加更多觸摸(例如屬性支持)。這不會與叮噹或GC,順便說一句。 – justin 2012-01-31 11:56:01

+0

有沒有更簡單的方法可以讓一個方法設置一個NSURL,然後您可以從另一個地方訪問並使用它來進行操作? – SirYakalot 2012-01-31 12:09:55