本文整理汇总了C++中XIBObject::stringValue方法的典型用法代码示例。如果您正苦于以下问题:C++ XIBObject::stringValue方法的具体用法?C++ XIBObject::stringValue怎么用?C++ XIBObject::stringValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XIBObject
的用法示例。
在下文中一共展示了XIBObject::stringValue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ExportController
void NIBWriter::ExportController(const char *controllerId)
{
char szFilename[255];
XIBObject* controller = XIBObject::findReference(controllerId);
UIViewController* uiViewController = dynamic_cast<UIViewController*>(controller);
if (!uiViewController) {
//object isn't really a controller
printf("Object %s is not a controller\n", controller->stringValue());
return;
}
const char* controllerIdentifier = uiViewController->_storyboardIdentifier;
if (controllerIdentifier == NULL) {
//not all viewcontrollers will have a storyboard identifier. If they don't use the controller Id for the key.
controllerIdentifier = controllerId;
}
// Check if we've already written out the controller
if (_g_exportedControllers.find(controllerId) != _g_exportedControllers.end()) {
return;
}
sprintf(szFilename, "%s.nib", controllerIdentifier);
_g_exportedControllers[controllerIdentifier] = controllerIdentifier;
XIBArray *objects = (XIBArray *) controller->_parent;
printf("Writing %s\n", GetOutputFilename(szFilename).c_str());
FILE *fpOut = fopen(GetOutputFilename(szFilename).c_str(), "wb");
NIBWriter *writer = new NIBWriter(fpOut, NULL, NULL);
XIBObject *firstResponderProxy = writer->AddProxy("IBFirstResponder");
XIBObject *ownerProxy = writer->AddProxy("IBFilesOwner");
XIBObject *storyboard = writer->AddProxy("UIStoryboardPlaceholder");
XIBArray *arr = (XIBArray *) objects;
for ( int i = 0; i < arr->count(); i ++ ) {
XIBObject *curObj = arr->objectAtIndex(i);
writer->ExportObject(curObj);
if ( curObj->getAttrib("sceneMemberID") ) {
if ( strcmp(curObj->getAttrib("sceneMemberID"), "viewController") == 0 ) {
writer->AddOutletConnection(ownerProxy, curObj, "sceneViewController");
}
}
}
writer->WriteObjects();
fclose(fpOut);
}
示例2: ConvertXIBToNib
void ConvertXIBToNib(FILE* fpOut, pugi::xml_document& doc) {
pugi::xml_node dataNode = doc.first_element_by_path("/archive/data");
XIBObject* root = new XIBObject();
root->ScanXIBNode(dataNode);
XIBObject::ParseAllXIBMembers();
XIBObject* Objects = root->FindMember("IBDocument.Objects");
XIBObject* objectRecords = Objects->FindMember("objectRecords");
XIBDictionary* properties = (XIBDictionary*)Objects->FindMember("flattenedProperties");
XIBObject* orderedObjects = objectRecords->FindMember("orderedObjects");
// Go through each ordered object to find replacements
for (memberList::iterator cur = orderedObjects->_members.begin(); cur != orderedObjects->_members.end(); cur++) {
XIBMember* curMember = *cur;
XIBObject* curObject = curMember->_obj;
if (strcmp(curObject->ClassName(), "IBObjectRecord") == 0) {
XIBObject* obj = curObject->FindMember("object");
if (obj) {
XIBObject* objectId = curObject->FindMember("objectID");
if (!objectId) {
objectId = curObject->FindMember("id");
}
int objId = objectId->intValue();
// Attempt to find any associated custom class name
char szPropName[255];
sprintf(szPropName, "%d.CustomClassName", objId);
const char* pClassName = obj->ClassName();
XIBObject* customName = properties->ObjectForKey(szPropName);
if (customName) {
const char* pCustomName = customName->stringValue();
obj->SetSwappedClassName(pCustomName);
}
for (memberList::iterator prop = properties->_members.begin(); prop != properties->_members.end(); prop++) {
char szMeta[255];
sprintf(szMeta, "%d.", objId);
if (strncmp(szMeta, (*prop)->_name, strlen(szMeta)) == 0) {
obj->AddMember(&(*prop)->_name[strlen(szMeta)], (*prop)->_obj);
}
}
}
}
}
// Create connections list
XIBArray* connections = new XIBArray();
XIBObject* connectionrecords = Objects->FindMember("connectionRecords");
for (memberList::iterator cur = connectionrecords->_members.begin(); cur != connectionrecords->_members.end(); cur++) {
XIBMember* curMember = *cur;
XIBObject* curObject = curMember->_obj;
if (strcmp(curObject->ClassName(), "IBConnectionRecord") == 0) {
XIBObject* obj = curObject->FindMember("connection");
if (obj) {
connections->AddMember(NULL, obj);
}
}
}
// Sort connection records alphabetically using stable, uh, bubble sort
for (;;) {
bool didSwap = false;
for (memberList::iterator cur = connections->_members.begin(); cur != connections->_members.end(); cur++) {
if ((cur + 1) == connections->_members.end())
break;
XIBMember* curMember = (*cur);
XIBMember* nextMember = (*(cur + 1));
if (curMember->_name != NULL)
continue;
// Event connections first
if (strcmp(curMember->_obj->_className, "IBCocoaTouchOutletConnection") == 0 &&
strcmp(nextMember->_obj->_className, "IBCocoaTouchEventConnection") == 0) {
*cur = nextMember;
*(cur + 1) = curMember;
didSwap = true;
continue;
}
if (strcmp(curMember->_obj->_className, nextMember->_obj->_className) == 0) {
const char* label1 = curMember->_obj->FindMember("label")->stringValue();
const char* label2 = nextMember->_obj->FindMember("label")->stringValue();
if (strcmp(label1, label2) > 0) {
*cur = nextMember;
*(cur + 1) = curMember;
didSwap = true;
}
}
}
//.........这里部分代码省略.........